diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2015-10-13 15:21:21 +0900 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2015-10-13 15:29:14 +0900 |
commit | 9b23f885525b38f0042b315e8254ea663e433ad8 (patch) | |
tree | 39792f0f1e45f58a88127e081a6d17ca04aa951e /services | |
parent | 4e4d59eeef86fa8560d35c00168869b0a066f962 (diff) | |
download | frameworks_base-9b23f885525b38f0042b315e8254ea663e433ad8.zip frameworks_base-9b23f885525b38f0042b315e8254ea663e433ad8.tar.gz frameworks_base-9b23f885525b38f0042b315e8254ea663e433ad8.tar.bz2 |
Don't crash if an invalid always-on VPN profile is configured.
This is currently being hit because Settings does not clear the
always-on VPN configuration when the corresponding VPN profile is
deleted. This will be fixed in Settings, but there's no harm in
being robust to invalid configurations here.
Bug: 23625458
Change-Id: Id185a54d5892339197cd40026df5174debd957cf
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 6190a5a..d715654 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -3212,6 +3212,11 @@ public class ConnectivityService extends IConnectivityManager.Stub final String profileName = new String(mKeyStore.get(Credentials.LOCKDOWN_VPN)); final VpnProfile profile = VpnProfile.decode( profileName, mKeyStore.get(Credentials.VPN + profileName)); + if (profile == null) { + Slog.e(TAG, "Lockdown VPN configured invalid profile " + profileName); + setLockdownTracker(null); + return true; + } int user = UserHandle.getUserId(Binder.getCallingUid()); synchronized(mVpns) { setLockdownTracker(new LockdownVpnTracker(mContext, mNetd, this, mVpns.get(user), |