diff options
author | Hai Zhang <zhanghai@google.com> | 2020-02-04 10:11:12 -0800 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-03-19 04:51:46 +0000 |
commit | f98e1086f5a039d98becf7203367b663e72d09f5 (patch) | |
tree | 59b3b0abae06a2d4695b1796b60c1cd3816a59e2 | |
parent | 8d0ae5c65cbcd72a820215eaeb50fcbc0dc531a8 (diff) | |
download | base-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.java | 9 |
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; } |