summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHai Zhang <zhanghai@google.com>2020-08-31 18:28:41 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-09-16 23:28:38 +0000
commitc46491e7da14c620fbe490d50b61aa65f256c5d3 (patch)
tree70405fe412e5c2dcd13be088535b11f43dad3c9f
parente752ae55522f2657bb26bd2351ef879a73fa6efb (diff)
downloadbase-c46491e7da14c620fbe490d50b61aa65f256c5d3.tar.gz
DO NOT MERGE Fix NPE in executeDeletePackageLIF.
The parameter allUserHandles may sometimes be null. Change-Id: Ie58cabe4bb1cae7173ad1d027e993a0b82a9f1ef Bug: 167233572 Bug: 140256621 Test: atest EphemeralTest (cherry picked from commit 01e0f4813af8502faaa683d55dbbc024b3080741)
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 7a38a4533572..c3c655d632e7 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -19198,7 +19198,8 @@ public class PackageManagerService extends IPackageManager.Stub
// We need to get the permission state before package state is (potentially) destroyed.
final SparseBooleanArray hadSuspendAppsPermission = new SparseBooleanArray();
- for (int userId : allUserHandles) {
+ // allUserHandles could be null, so call mUserManager.getUserIds() directly which is cached anyway.
+ for (int userId : mUserManager.getUserIds()) {
hadSuspendAppsPermission.put(userId, checkPermission(Manifest.permission.SUSPEND_APPS,
packageName, userId) == PERMISSION_GRANTED);
}