summaryrefslogtreecommitdiff
path: root/apex
diff options
context:
space:
mode:
authorCassie Wang <cassiewang@google.com>2021-07-21 01:03:03 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-07-21 01:03:03 +0000
commit34a952cf94bb95cb8a4e527e70a43ad9bc452440 (patch)
treef132a362521cace6356dfe9de0e6ea046fd21c07 /apex
parent16ff25f5a7026ad890293b0676d90ed0270207ca (diff)
parent3ce6aba4030fbe93a1b5590ee6039f35cdce27b9 (diff)
Merge "Ensure calling user is the same as requested user." into sc-dev
Diffstat (limited to 'apex')
-rw-r--r--apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java26
1 files changed, 4 insertions, 22 deletions
diff --git a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java
index 666d49770a70..1d66bebc81f9 100644
--- a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java
+++ b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java
@@ -18,7 +18,6 @@ package com.android.server.appsearch;
import static android.app.appsearch.AppSearchResult.throwableToFailedResult;
import static android.os.Process.INVALID_UID;
-import android.Manifest;
import android.annotation.ElapsedRealtimeLong;
import android.annotation.NonNull;
import android.app.appsearch.AppSearchBatchResult;
@@ -1354,43 +1353,26 @@ public class AppSearchManagerService extends SystemService {
/**
* Helper for dealing with incoming user arguments to system service calls.
*
- * <p>Takes care of checking permissions and converting USER_CURRENT to the actual current user.
- *
* @param requestedUser The user which the caller is requesting to execute as.
* @param callingUid The actual uid of the caller as determined by Binder.
* @return the user handle that the call should run as. Will always be a concrete user.
*/
@NonNull
private UserHandle handleIncomingUser(@NonNull UserHandle requestedUser, int callingUid) {
- int callingPid = Binder.getCallingPid();
UserHandle callingUser = UserHandle.getUserHandleForUid(callingUid);
if (callingUser.equals(requestedUser)) {
return requestedUser;
}
+
// Duplicates UserController#ensureNotSpecialUser
if (requestedUser.getIdentifier() < 0) {
throw new IllegalArgumentException(
"Call does not support special user " + requestedUser);
}
- boolean canInteractAcrossUsers = mContext.checkPermission(
- Manifest.permission.INTERACT_ACROSS_USERS,
- callingPid,
- callingUid) == PackageManager.PERMISSION_GRANTED;
- if (!canInteractAcrossUsers) {
- canInteractAcrossUsers = mContext.checkPermission(
- Manifest.permission.INTERACT_ACROSS_USERS_FULL,
- callingPid,
- callingUid) == PackageManager.PERMISSION_GRANTED;
- }
- if (canInteractAcrossUsers) {
- return requestedUser;
- }
+
throw new SecurityException(
- "Permission denied while calling from uid " + callingUid
- + " with " + requestedUser + "; Need to run as either the calling user ("
- + callingUser + "), or with one of the following permissions: "
- + Manifest.permission.INTERACT_ACROSS_USERS + " or "
- + Manifest.permission.INTERACT_ACROSS_USERS_FULL);
+ "Requested user, " + requestedUser + ", is not the same as the calling user, "
+ + callingUser + ".");
}
/**