From 415dd94ae5c71aaef62b66463724544b44b1f41f Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Thu, 11 Feb 2016 08:50:43 -0800 Subject: [PATCH] Fail fast when trying to delete a non-existing pacakge. bug:26921392 Change-Id: I518cc43f3b1b28bd239093feead46107c62eb419 --- .../java/com/android/server/pm/PackageManagerService.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 1a093f43d2c7..6011e071e5d2 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -14112,20 +14112,19 @@ public class PackageManagerService extends IPackageManager.Stub { return PackageManager.DELETE_FAILED_DEVICE_POLICY_MANAGER; } - PackageParser.Package uninstalledPkg; + PackageSetting uninstalledPs = null; // for the uninstall-updates case and restricted profiles, remember the per- // user handle installed state int[] allUsers; synchronized (mPackages) { - uninstalledPkg = mPackages.get(packageName); - PackageSetting ps = mSettings.mPackages.get(packageName); - if (ps == null || uninstalledPkg == null) { + uninstalledPs = mSettings.mPackages.get(packageName); + if (uninstalledPs == null) { Slog.w(TAG, "Not removing non-existent package " + packageName); return PackageManager.DELETE_FAILED_INTERNAL_ERROR; } allUsers = sUserManager.getUserIds(); - info.origUsers = ps.queryInstalledUsers(allUsers, true); + info.origUsers = uninstalledPs.queryInstalledUsers(allUsers, true); } synchronized (mInstallLock) { @@ -14134,7 +14133,7 @@ public class PackageManagerService extends IPackageManager.Stub { flags | REMOVE_CHATTY, info, true, null); synchronized (mPackages) { if (res) { - mEphemeralApplicationRegistry.onPackageUninstalledLPw(uninstalledPkg); + mEphemeralApplicationRegistry.onPackageUninstalledLPw(uninstalledPs.pkg); } } } -- 2.11.0