From 0c6544bd73ef922cf8d1ed26dc5a1c5f988dfa0c Mon Sep 17 00:00:00 2001 From: Ken Mixter Date: Thu, 7 Nov 2013 22:08:24 -0800 Subject: [PATCH] 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 --- services/java/com/android/server/ConnectivityService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 29c546e197..10b1befdc5 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) {