diff options
| author | 2013-11-07 22:08:24 -0800 | |
|---|---|---|
| committer | 2013-11-12 22:17:46 -0800 | |
| commit | 151d3032eb81337b0b876b0a43c6faefe54e516a (patch) | |
| tree | ebdfdca8200fd0eaa86d38ab3ebf528697788ff5 | |
| 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
| -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) { |