summaryrefslogtreecommitdiffstats
path: root/wifi
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2010-12-03 09:59:07 -0800
committerIrfan Sheriff <isheriff@google.com>2010-12-03 09:59:07 -0800
commitd69f649eaf265ecee75757f34bb83b6068968e3d (patch)
tree338481f8343339ad2641fb3dc1fe1b40ca14afd5 /wifi
parent3591bebd5957a8547fc54659179a19440636e7f9 (diff)
downloadframeworks_base-d69f649eaf265ecee75757f34bb83b6068968e3d.zip
frameworks_base-d69f649eaf265ecee75757f34bb83b6068968e3d.tar.gz
frameworks_base-d69f649eaf265ecee75757f34bb83b6068968e3d.tar.bz2
DO NOT MERGE Avoid nullifying dhcp target
A race condition causes an NPE on mDhcpTarget. The safest change is to avoid nullifying it. A dummy call to remove messages on a handler whose looper is quit should do no harm. Bug: 3191203 Change-Id: I7613a5add873ce9512e9719cb2dc8da61255370e
Diffstat (limited to 'wifi')
-rw-r--r--wifi/java/android/net/wifi/WifiStateTracker.java13
1 files changed, 5 insertions, 8 deletions
diff --git a/wifi/java/android/net/wifi/WifiStateTracker.java b/wifi/java/android/net/wifi/WifiStateTracker.java
index 5540174..27e6a72 100644
--- a/wifi/java/android/net/wifi/WifiStateTracker.java
+++ b/wifi/java/android/net/wifi/WifiStateTracker.java
@@ -933,10 +933,8 @@ public class WifiStateTracker extends NetworkStateTracker {
resetConnections(true);
}
// When supplicant dies, kill the DHCP thread
- if (mDhcpTarget != null) {
- mDhcpTarget.getLooper().quit();
- mDhcpTarget = null;
- }
+ mDhcpTarget.getLooper().quit();
+
mContext.removeStickyBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));
if (ActivityManagerNative.isSystemReady()) {
intent = new Intent(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION);
@@ -1407,10 +1405,9 @@ public class WifiStateTracker extends NetworkStateTracker {
NetworkUtils.resetConnections(mInterfaceName);
// Stop DHCP
- if (mDhcpTarget != null) {
- mDhcpTarget.setCancelCallback(true);
- mDhcpTarget.removeMessages(EVENT_DHCP_START);
- }
+ mDhcpTarget.setCancelCallback(true);
+ mDhcpTarget.removeMessages(EVENT_DHCP_START);
+
if (!NetworkUtils.stopDhcp(mInterfaceName)) {
Log.e(TAG, "Could not stop DHCP");
}