summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHai Zhang <zhanghai@google.com>2020-02-04 10:11:12 -0800
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-03-19 04:51:46 +0000
commitf98e1086f5a039d98becf7203367b663e72d09f5 (patch)
tree59b3b0abae06a2d4695b1796b60c1cd3816a59e2
parent8d0ae5c65cbcd72a820215eaeb50fcbc0dc531a8 (diff)
downloadbase-f98e1086f5a039d98becf7203367b663e72d09f5.tar.gz
Call getPackageInfo() with cleared calling identity in ensureSystemPackageName().
Otherwise non-primary users might get a SecurityException. Bug: 145981139 Bug: 148763415 Test: manual Change-Id: I5883e296a0d753e43075cbf0abc5dc4da91e2fca (cherry picked from commit e693b797bcf0be38f0fc9d878bb5278eacf8b4b1)
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 80706c1862e5..dbb29470d4ee 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -21228,8 +21228,13 @@ public class PackageManagerService extends IPackageManager.Stub
if (packageName == null) {
return null;
}
- if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) {
- return null;
+ long token = Binder.clearCallingIdentity();
+ try {
+ if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) {
+ return null;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(token);
}
return packageName;
}