summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Azhara Assanova <azharaa@google.com> 2024-03-15 15:43:08 +0000
committer Azhara Assanova <azharaa@google.com> 2024-03-15 17:39:27 +0000
commit3925dd07b6596a23275cbbd047408f32293f784b (patch)
tree3bbb6cbfcec7de4797db35721d364af6aedd3f3f
parentd44492f0703d2942d2578cfe12e40ec1c68956a8 (diff)
Fix ActivityCallerState's user id resolution
The convertToGrantUri method uses an incorrect default value for the user id. This changes fixes it by retrieving the user id from the uid. Bug: 326819726 Test: atest CtsAndroidAppTestCases:android.app.cts.ComponentCallerTest Test: atest CtsAndroidAppTestCases:android.app.cts.ComponentCallerTest --user-type secondary_user Test: run above on phone and auto targets Change-Id: Ib5767bcec0045be692f41949fbd4e2e80a08b8aa
-rw-r--r--services/core/java/com/android/server/wm/ActivityCallerState.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityCallerState.java b/services/core/java/com/android/server/wm/ActivityCallerState.java
index fa0b17631b0d..a333a4d46162 100644
--- a/services/core/java/com/android/server/wm/ActivityCallerState.java
+++ b/services/core/java/com/android/server/wm/ActivityCallerState.java
@@ -119,7 +119,7 @@ final class ActivityCallerState {
if (!hasRead && !hasWrite) {
callerInfo.mInaccessibleContentUris.add(convertToGrantUri(contentUri,
- /* modeFlags */ 0));
+ /* modeFlags */ 0, callerUid));
}
}
}
@@ -164,7 +164,7 @@ final class ActivityCallerState {
private boolean addContentUriIfUidHasPermission(Uri contentUri, int uid, int modeFlags,
ArraySet<GrantUri> grantUris) {
- final GrantUri grantUri = convertToGrantUri(contentUri, modeFlags);
+ final GrantUri grantUri = convertToGrantUri(contentUri, modeFlags, uid);
if (mAtmService.mUgmInternal.checkUriPermission(grantUri, uid,
modeFlags, /* isFullAccessForContentUri */ true)) {
grantUris.add(grantUri);
@@ -173,9 +173,9 @@ final class ActivityCallerState {
return false;
}
- private static GrantUri convertToGrantUri(Uri contentUri, int modeFlags) {
+ private static GrantUri convertToGrantUri(Uri contentUri, int modeFlags, int uid) {
return new GrantUri(ContentProvider.getUserIdFromUri(contentUri,
- UserHandle.getCallingUserId()), ContentProvider.getUriWithoutUserId(contentUri),
+ UserHandle.getUserId(uid)), ContentProvider.getUriWithoutUserId(contentUri),
modeFlags);
}