summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Remi NGUYEN VAN <reminv@google.com> 2019-01-31 04:09:29 -0800
committer android-build-merger <android-build-merger@google.com> 2019-01-31 04:09:29 -0800
commit1a0ac241e842aa1d9ed10bcea5b3f64a7109c598 (patch)
tree9e8a80a90164955556cfc4b8d8efc4c408e6bb14
parent291e3726cd0f9c395d78b55790102a57d56aaa43 (diff)
parent4bb4c1a7929ede5702c42feb55c52c2ade9bbfa4 (diff)
Merge "Fix bluetooth tethering on multi-user"
am: 4bb4c1a792 Change-Id: I24be143b38bdda59b4cc3037e495f0cb268a2b9f
-rw-r--r--core/java/android/net/NetworkStack.java2
-rw-r--r--packages/NetworkStack/src/com/android/server/util/PermissionUtil.java3
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);
}
}