diff options
| author | 2024-03-15 15:43:08 +0000 | |
|---|---|---|
| committer | 2024-03-15 17:39:27 +0000 | |
| commit | 3925dd07b6596a23275cbbd047408f32293f784b (patch) | |
| tree | 3bbb6cbfcec7de4797db35721d364af6aedd3f3f | |
| parent | d44492f0703d2942d2578cfe12e40ec1c68956a8 (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.java | 8 |
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); } |