diff options
| author | 2011-01-21 18:26:06 -0800 | |
|---|---|---|
| committer | 2011-01-21 18:26:06 -0800 | |
| commit | 91c12c27ef64f0573c02a9938a8c280f5a6c664e (patch) | |
| tree | 40b692635535ca2ab84ad89a63530e729c5fb749 | |
| parent | 7d234fabe61cd5f034fe4ff4484209fbf5130c4d (diff) | |
frameworks/base: Track owner in appropriate owners list of Uri
The owner isn't kept track it URI's writeOwners when
grantUriPermissionUncheckedLocked is invoked to provide both
read and write access to the URI. Fix is to check for both
read and write permissions and add owner to appropriate lists.
Change-Id: Id23688b96aefeb0a4911ee52ad47124bc5904fa0
| -rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 2322ee17d115..a881bc4dd5aa 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -4385,12 +4385,15 @@ public final class ActivityManagerService extends ActivityManagerNative perm.modeFlags |= modeFlags; if (owner == null) { perm.globalModeFlags |= modeFlags; - } else if ((modeFlags&Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) { - perm.readOwners.add(owner); - owner.addReadPermission(perm); - } else if ((modeFlags&Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0) { - perm.writeOwners.add(owner); - owner.addWritePermission(perm); + } else { + if ((modeFlags&Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) { + perm.readOwners.add(owner); + owner.addReadPermission(perm); + } + if ((modeFlags&Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != 0) { + perm.writeOwners.add(owner); + owner.addWritePermission(perm); + } } } |