From 21326d8b77cfd1567d87d5ebe3e327b744632e24 Mon Sep 17 00:00:00 2001 From: Chih-Wei Huang Date: Wed, 22 Aug 2012 11:26:51 +0800 Subject: [PATCH] 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.(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 --- core/java/android/net/arp/ArpPeer.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/java/android/net/arp/ArpPeer.java b/core/java/android/net/arp/ArpPeer.java index 8e666bc275da..6ba1e7c5705b 100644 --- a/core/java/android/net/arp/ArpPeer.java +++ b/core/java/android/net/arp/ArpPeer.java @@ -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) { -- 2.11.0