summaryrefslogtreecommitdiff
path: root/com/android/server/media/MediaSessionService.java
diff options
context:
space:
mode:
Diffstat (limited to 'com/android/server/media/MediaSessionService.java')
-rw-r--r--com/android/server/media/MediaSessionService.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/com/android/server/media/MediaSessionService.java b/com/android/server/media/MediaSessionService.java
index 6413ba98..a3c6c80c 100644
--- a/com/android/server/media/MediaSessionService.java
+++ b/com/android/server/media/MediaSessionService.java
@@ -1515,6 +1515,24 @@ public class MediaSessionService extends SystemService implements Monitor {
final int uid = Binder.getCallingUid();
final long token = Binder.clearCallingIdentity();
try {
+ int controllerUserId = UserHandle.getUserId(controllerUid);
+ int controllerUidFromPackageName;
+ try {
+ controllerUidFromPackageName = getContext().getPackageManager()
+ .getPackageUidAsUser(controllerPackageName, controllerUserId);
+ } catch (NameNotFoundException e) {
+ if (DEBUG) {
+ Log.d(TAG, "Package " + controllerPackageName + " doesn't exist");
+ }
+ return false;
+ }
+ if (controllerUidFromPackageName != controllerUid) {
+ if (DEBUG) {
+ Log.d(TAG, "Package name " + controllerPackageName
+ + " doesn't match with the uid " + controllerUid);
+ }
+ return false;
+ }
return hasMediaControlPermission(UserHandle.getUserId(uid), controllerPackageName,
controllerPid, controllerUid);
} finally {