summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2015-04-22 02:14:47 -0700
committerSvet Ganov <svetoslavganov@google.com>2015-04-22 02:14:47 -0700
commit4f2dcfd48010a338dc9a2f5870ed12b382c30cd7 (patch)
tree3c2e9dc581da3838c5306adbbe9f5c923a11fab6 /services
parent8b625dbe7fa13e3fd15f57f015ab7afe229ce3cf (diff)
downloadframeworks_base-4f2dcfd48010a338dc9a2f5870ed12b382c30cd7.zip
frameworks_base-4f2dcfd48010a338dc9a2f5870ed12b382c30cd7.tar.gz
frameworks_base-4f2dcfd48010a338dc9a2f5870ed12b382c30cd7.tar.bz2
Fix permission check imposed by broadcast sender.
Change-Id: Id105b00aad7b369fa0337fa63753ce7ea71b3383
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/am/BroadcastQueue.java3
-rw-r--r--services/core/java/com/android/server/pm/PermissionsState.java3
2 files changed, 5 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index 5b5ebef..f62f08d 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -765,7 +765,8 @@ public final class BroadcastQueue {
try {
perm = AppGlobals.getPackageManager().
checkPermission(r.requiredPermission,
- info.activityInfo.applicationInfo.packageName, r.userId);
+ info.activityInfo.applicationInfo.packageName,
+ UserHandle.getUserId(info.activityInfo.applicationInfo.uid));
} catch (RemoteException e) {
perm = PackageManager.PERMISSION_DENIED;
}
diff --git a/services/core/java/com/android/server/pm/PermissionsState.java b/services/core/java/com/android/server/pm/PermissionsState.java
index 688c035..3749957 100644
--- a/services/core/java/com/android/server/pm/PermissionsState.java
+++ b/services/core/java/com/android/server/pm/PermissionsState.java
@@ -93,6 +93,9 @@ public final class PermissionsState {
* @param other The other instance.
*/
public void copyFrom(PermissionsState other) {
+ if (other == this) {
+ return;
+ }
if (mPermissions != null) {
if (other.mPermissions == null) {
mPermissions = null;