diff options
| author | 2019-01-31 04:20:50 -0800 | |
|---|---|---|
| committer | 2019-01-31 04:20:50 -0800 | |
| commit | b077c11c2fae16ab099aaacf58c125773f4b1a95 (patch) | |
| tree | fec7f8b0e3cd4413a8205de988432c284df54daf | |
| parent | 7a71796b0aa2417b59a9a17aaea38be6d8b2a8bf (diff) | |
| parent | 1a0ac241e842aa1d9ed10bcea5b3f64a7109c598 (diff) | |
Merge "Fix bluetooth tethering on multi-user" am: 4bb4c1a792
am: 1a0ac241e8
Change-Id: I73c2a061f2aeae466f650d85f16cb4587b264737
| -rw-r--r-- | core/java/android/net/NetworkStack.java | 2 | ||||
| -rw-r--r-- | packages/NetworkStack/src/com/android/server/util/PermissionUtil.java | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/core/java/android/net/NetworkStack.java b/core/java/android/net/NetworkStack.java index ac6bff029e8c..d21e674719df 100644 --- a/core/java/android/net/NetworkStack.java +++ b/core/java/android/net/NetworkStack.java @@ -223,7 +223,7 @@ public class NetworkStack { private void requestConnector(@NonNull NetworkStackCallback request) { // TODO: PID check. final int caller = Binder.getCallingUid(); - if (caller != Process.SYSTEM_UID && caller != Process.BLUETOOTH_UID) { + if (caller != Process.SYSTEM_UID && !UserHandle.isSameApp(caller, Process.BLUETOOTH_UID)) { // Don't even attempt to obtain the connector and give a nice error message throw new SecurityException( "Only the system server should try to bind to the network stack."); diff --git a/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java b/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java index 82bf038073c7..f6eb900c4910 100644 --- a/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java +++ b/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java @@ -19,6 +19,7 @@ package com.android.server.util; import static android.os.Binder.getCallingUid; import android.os.Process; +import android.os.UserHandle; /** * Utility class to check calling permissions on the network stack. @@ -32,7 +33,7 @@ public final class PermissionUtil { public static void checkNetworkStackCallingPermission() { // TODO: check that the calling PID is the system server. final int caller = getCallingUid(); - if (caller != Process.SYSTEM_UID && caller != Process.BLUETOOTH_UID) { + if (caller != Process.SYSTEM_UID && UserHandle.getAppId(caller) != Process.BLUETOOTH_UID) { throw new SecurityException("Invalid caller: " + caller); } } |