From be994246f4803412b2754e31c617eec6aaac3a97 Mon Sep 17 00:00:00 2001 From: Pavan Kumar M Date: Wed, 29 Sep 2021 17:59:24 +0530 Subject: [PATCH] Update Permission only if the network is created Reproduction steps: - Register a NetworkAgent but don't mark it as connected. - Set teardownDelayMs for the NetworkAgent to 100 - Unregister the NetworkAgent then see system crashed. Tests: - Builds, Boots - ConnectivityServiceTest Change-Id: Ib8e517acb0193a2454d672612fe61fc199de46a4 Bug: 200023207 --- .../src/com/android/server/ConnectivityService.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index 7223c194b1..12846ddb53 100644 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -3941,10 +3941,12 @@ public class ConnectivityService extends IConnectivityManager.Stub } // Delayed teardown. - try { - mNetd.networkSetPermissionForNetwork(nai.network.netId, INetd.PERMISSION_SYSTEM); - } catch (RemoteException e) { - Log.d(TAG, "Error marking network restricted during teardown: ", e); + if (nai.created) { + try { + mNetd.networkSetPermissionForNetwork(nai.network.netId, INetd.PERMISSION_SYSTEM); + } catch (RemoteException e) { + Log.d(TAG, "Error marking network restricted during teardown: ", e); + } } mHandler.postDelayed(() -> destroyNetwork(nai), nai.teardownDelayMs); }