summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchiachangwang <chiachangwang@google.com>2022-08-11 01:19:01 +0000
committerchiachangwang <chiachangwang@google.com>2022-08-11 04:14:54 +0000
commit9cfd367413b010dd517840a9aab592b1cf77012b (patch)
treef4d342ffca0db79a0bc19b5ed226d78a96b940f2
parent00f823fb2a976075076ea72669f6d1230d689eac (diff)
downloadbase-9cfd367413b010dd517840a9aab592b1cf77012b.tar.gz
Invert the order of event sending and VpnRunner.exit()
Invert the order to prevent confusing VPN disconnected notification being sent before the runner actually exits. Bug: 235322391 Test: atest FrameworksNetTests Change-Id: I3b2eed8bf4de4b8dd00d4797509884ebeff9ad75
-rw-r--r--services/core/java/com/android/server/connectivity/Vpn.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index 16a060af66ad..b85d36da9f4a 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -4042,9 +4042,11 @@ public class Vpn {
// To stop the VPN profile, the caller must be the current prepared package and must be
// running an Ikev2VpnProfile.
if (isCurrentIkev2VpnLocked(packageName)) {
- notifyVpnManagerVpnStopped(packageName, mOwnerUID);
+ // Cache ownerUid to prevent the value being changed after performing VpnRunner.exit().
+ final int ownerUid = mOwnerUID;
mVpnRunner.exit();
+ notifyVpnManagerVpnStopped(packageName, ownerUid);
}
}