diff options
| -rw-r--r-- | services/core/java/com/android/server/uri/UriGrantsManagerService.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/uri/UriGrantsManagerService.java b/services/core/java/com/android/server/uri/UriGrantsManagerService.java index 9a7e75e548af..744efab7d78d 100644 --- a/services/core/java/com/android/server/uri/UriGrantsManagerService.java +++ b/services/core/java/com/android/server/uri/UriGrantsManagerService.java @@ -1129,7 +1129,8 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub { * In this case, we grant a uri permission, even if the ContentProvider does not normally * grant uri permissions. */ - boolean specialCrossUserGrant = UserHandle.getUserId(targetUid) != grantUri.sourceUserId + boolean specialCrossUserGrant = targetUid >= 0 + && UserHandle.getUserId(targetUid) != grantUri.sourceUserId && checkHoldingPermissionsInternal(pm, pi, grantUri, callingUid, modeFlags, false /*without considering the uid permissions*/); |