summaryrefslogtreecommitdiffstats
path: root/services/net
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2015-08-11 15:42:59 +0900
committerLorenzo Colitti <lorenzo@google.com>2015-08-11 15:42:59 +0900
commit31e19f34f56a01a7b4133cd1dccf13b18b469ac7 (patch)
tree55348a815d3cacf0ce851246c7930f258939d096 /services/net
parentc00b1067a05116548a0883e1400a1c4715078797 (diff)
downloadframeworks_base-31e19f34f56a01a7b4133cd1dccf13b18b469ac7.zip
frameworks_base-31e19f34f56a01a7b4133cd1dccf13b18b469ac7.tar.gz
frameworks_base-31e19f34f56a01a7b4133cd1dccf13b18b469ac7.tar.bz2
Don't attempt to stop the receive thread if we never started it.
If socket initialization fails, DhcpState#exit will call mReceiveThread#stop and crash the system with an NPE. Make sure we don't do that if mReceiveThread is null, and properly null it out when exiting. Bug: 23088314 Change-Id: I4378d8280f9d8588f5eaa8bd7ade61beab1c3ce2
Diffstat (limited to 'services/net')
-rw-r--r--services/net/java/android/net/dhcp/DhcpClient.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/services/net/java/android/net/dhcp/DhcpClient.java b/services/net/java/android/net/dhcp/DhcpClient.java
index 2d40291..9ee9cf4 100644
--- a/services/net/java/android/net/dhcp/DhcpClient.java
+++ b/services/net/java/android/net/dhcp/DhcpClient.java
@@ -603,7 +603,10 @@ public class DhcpClient extends BaseDhcpStateMachine {
@Override
public void exit() {
cancelOneshotTimeout();
- mReceiveThread.halt(); // Also closes sockets.
+ if (mReceiveThread != null) {
+ mReceiveThread.halt(); // Also closes sockets.
+ mReceiveThread = null;
+ }
clearDhcpState();
}