summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vairavan Srinivasan <vairav@codeaurora.org> 2011-01-21 18:26:06 -0800
committer Vairavan Srinivasan <vairav@codeaurora.org> 2011-01-21 18:26:06 -0800
commit91c12c27ef64f0573c02a9938a8c280f5a6c664e (patch)
tree40b692635535ca2ab84ad89a63530e729c5fb749
parent7d234fabe61cd5f034fe4ff4484209fbf5130c4d (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.java15
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);
+ }
}
}