diff options
author | Ken Mixter <kmixter@google.com> | 2013-11-07 22:08:24 -0800 |
---|---|---|
committer | Ken Mixter <kmixter@google.com> | 2013-11-12 22:17:46 -0800 |
commit | 151d3032eb81337b0b876b0a43c6faefe54e516a (patch) | |
tree | ebdfdca8200fd0eaa86d38ab3ebf528697788ff5 /services/java/com/android/server/ConnectivityService.java | |
parent | 0b807d2e74f786af0d44162d92cc0bf85883349a (diff) |
Fix NPE in ConnectivityService
Could occur when requestRouteToHostAddress is called on a network
with no associated tracker. Code later in the method handles
this case gracefully but code introduced in JB throws an exception.
Change-Id: I6c8a0e313ecbcca120aeb5dd0802a72114749aa1
Diffstat (limited to 'services/java/com/android/server/ConnectivityService.java')
-rw-r--r-- | services/java/com/android/server/ConnectivityService.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 29c546e19722..10b1befdc5d6 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -1432,9 +1432,12 @@ public class ConnectivityService extends IConnectivityManager.Stub { return false; } NetworkStateTracker tracker = mNetTrackers[networkType]; - DetailedState netState = tracker.getNetworkInfo().getDetailedState(); + DetailedState netState = DetailedState.DISCONNECTED; + if (tracker != null) { + netState = tracker.getNetworkInfo().getDetailedState(); + } - if (tracker == null || (netState != DetailedState.CONNECTED && + if ((netState != DetailedState.CONNECTED && netState != DetailedState.CAPTIVE_PORTAL_CHECK) || tracker.isTeardownRequested()) { if (VDBG) { |