From 91c12c27ef64f0573c02a9938a8c280f5a6c664e Mon Sep 17 00:00:00 2001 From: Vairavan Srinivasan Date: Fri, 21 Jan 2011 18:26:06 -0800 Subject: [PATCH] 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 --- .../android/server/am/ActivityManagerService.java | 15 +++++++++------ 1 file 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 2322ee17d115d..a881bc4dd5aa6 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); + } } }