diff options
author | chiachangwang <chiachangwang@google.com> | 2022-08-11 01:19:01 +0000 |
---|---|---|
committer | chiachangwang <chiachangwang@google.com> | 2022-08-11 04:14:54 +0000 |
commit | 9cfd367413b010dd517840a9aab592b1cf77012b (patch) | |
tree | f4d342ffca0db79a0bc19b5ed226d78a96b940f2 | |
parent | 00f823fb2a976075076ea72669f6d1230d689eac (diff) | |
download | base-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.java | 4 |
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); } } |