diff options
| author | 2020-10-12 16:23:15 -0700 | |
|---|---|---|
| committer | 2020-10-29 10:16:10 -0700 | |
| commit | feb4dd913c1b128df1626471375d423257d57cf9 (patch) | |
| tree | f529644a65f6768371fbc3cb41e80d00c2999d6f | |
| parent | a2a586a61a528a3bf16703148d072f253b32e638 (diff) | |
RESTRICT AUTOMERGE
Fix CDM package check
CDM was using a pckage check that returns a value intead of throwing,
resulting in failing to throw on querying other package's associations
Test: ensure attached bug no longer reproduces
Bug: 167244818
Change-Id: I21319b6f5495dcae681541c76b847aad0c00b8ab
| -rw-r--r-- | services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index bf2b83b1b249..0e77715e1563 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -26,6 +26,7 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainRunna import android.Manifest; import android.annotation.CheckResult; import android.annotation.Nullable; +import android.app.AppOpsManager; import android.app.PendingIntent; import android.companion.AssociationRequest; import android.companion.CompanionDeviceManager; @@ -277,7 +278,10 @@ public class CompanionDeviceManagerService extends SystemService implements Bind checkArgument(getCallingUserId() == userId, "Must be called by either same user or system"); - mAppOpsManager.checkPackage(Binder.getCallingUid(), pkg); + int callingUid = Binder.getCallingUid(); + if (mAppOpsManager.checkPackage(callingUid, pkg) != AppOpsManager.MODE_ALLOWED) { + throw new SecurityException(pkg + " doesn't belong to uid " + callingUid); + } } @Override |