diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 0a76bdc21696d..fd53a10009880 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -2696,19 +2696,21 @@ public class Vpn { // prevent the NetworkManagementEventObserver from killing this VPN based on the // interface going down (which we expect). mInterface = null; - mConfig.interfaze = null; + if (mConfig != null) { + mConfig.interfaze = null; - // Set as unroutable to prevent traffic leaking while the interface is down. - if (mConfig != null && mConfig.routes != null) { - final List oldRoutes = new ArrayList<>(mConfig.routes); + // Set as unroutable to prevent traffic leaking while the interface is down. + if (mConfig.routes != null) { + final List oldRoutes = new ArrayList<>(mConfig.routes); - mConfig.routes.clear(); - for (final RouteInfo route : oldRoutes) { - mConfig.routes.add(new RouteInfo(route.getDestination(), null /*gateway*/, - null /*iface*/, RTN_UNREACHABLE)); - } - if (mNetworkAgent != null) { - mNetworkAgent.sendLinkProperties(makeLinkProperties()); + mConfig.routes.clear(); + for (final RouteInfo route : oldRoutes) { + mConfig.routes.add(new RouteInfo(route.getDestination(), + null /*gateway*/, null /*iface*/, RTN_UNREACHABLE)); + } + if (mNetworkAgent != null) { + mNetworkAgent.sendLinkProperties(makeLinkProperties()); + } } } }