Avoid system_server crashing due to mac address is null

It's possible that the mac address is null (getMacAddress() of WifiNative.java).
In this case system_server will crash like:

E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: WifiWatchdogStateMachine
E AndroidRuntime: java.lang.NullPointerException
E AndroidRuntime:        at android.net.arp.ArpPeer.<init>(ArpPeer.java:57)
E AndroidRuntime:        at android.net.wifi.WifiWatchdogStateMachine.doArpTest(WifiWatchdogStateMachine.java:866)

Check the mac address before parsing to avoid crashing.

Change-Id: I5d4205c04d479a3a2837172c6382816ea4bf74d6
This commit is contained in:
Chih-Wei Huang
2012-08-22 11:26:51 +08:00
committed by Chih-Wei Huang
parent b0b4a70440
commit 21326d8b77

View File

@ -53,9 +53,11 @@ public class ArpPeer {
mInterfaceName = interfaceName;
mMyAddr = myAddr;
for (int i = 0; i < MAC_ADDR_LENGTH; i++) {
mMyMac[i] = (byte) Integer.parseInt(mac.substring(
i*3, (i*3) + 2), 16);
if (mac != null) {
for (int i = 0; i < MAC_ADDR_LENGTH; i++) {
mMyMac[i] = (byte) Integer.parseInt(mac.substring(
i*3, (i*3) + 2), 16);
}
}
if (myAddr instanceof Inet6Address || peer instanceof Inet6Address) {