summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robin Lee <rgl@google.com> 2016-04-06 19:12:42 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-04-06 19:12:43 +0000
commita0576c61d871c928826b3fcf96eaedc157bc3f04 (patch)
treef3ba90bd4f829c0064df4e3fe57622d991c83f85
parentf583427b0de21037b9bda8a8a66b1ca4e4e1c9b9 (diff)
parent1b1bcd7b7370866bc00ce3361be8d5167bf3e28d (diff)
Merge "Disallow prepare()-ing over an always on VPN app" into nyc-dev
-rw-r--r--services/core/java/com/android/server/connectivity/Vpn.java7
1 files changed, 6 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 3b0b79a771ef..a111bf925181 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -264,7 +264,12 @@ public class Vpn {
return true;
}
- // Check if the caller is authorized.
+ // Stop an existing always-on VPN from being dethroned by other apps.
+ if (getAlwaysOnPackage() != null) {
+ return false;
+ }
+
+ // Check that the caller is authorized.
enforceControlPermission();
prepareInternal(newPackage);