diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2015-08-11 15:42:59 +0900 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2015-08-11 15:42:59 +0900 |
commit | 31e19f34f56a01a7b4133cd1dccf13b18b469ac7 (patch) | |
tree | 55348a815d3cacf0ce851246c7930f258939d096 | |
parent | c00b1067a05116548a0883e1400a1c4715078797 (diff) | |
download | frameworks_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
-rw-r--r-- | services/net/java/android/net/dhcp/DhcpClient.java | 5 |
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(); } |