From 544b3835ddf97dfb982b532e957094ea806c8bc4 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Tue, 22 Aug 2017 10:48:18 -0700 Subject: make sure package info is non-null Change-Id: Ib867075a79712de36c46f862d13e5fc1d0958f00 Fixes: 64812776 Test: manual --- .../java/com/android/server/pm/PackageInstallerSession.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 082dd2badd1c..bdda3213dc38 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -41,6 +41,7 @@ import static com.android.server.pm.PackageInstallerService.prepareStageDir; import android.Manifest; import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.Intent; @@ -732,7 +733,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { * * @param pkgInfo The package info for {@link #params}.packagename */ - private void sealAndValidateLocked(PackageInfo pkgInfo) + private void sealAndValidateLocked(@Nullable PackageInfo pkgInfo) throws PackageManagerException { assertNoWriteFileTransfersOpenLocked(); @@ -924,7 +925,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { * Note that upgrade compatibility is still performed by * {@link PackageManagerService}. */ - private void validateInstallLocked(PackageInfo pkgInfo) throws PackageManagerException { + private void validateInstallLocked(@Nullable PackageInfo pkgInfo) + throws PackageManagerException { mPackageName = null; mVersionCode = -1; mSignatures = null; @@ -1005,6 +1007,11 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } if (removeSplitList.size() > 0) { + if (pkgInfo == null) { + throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, + "Missing existing base package for " + mPackageName); + } + // validate split names marked for removal for (String splitName : removeSplitList) { if (!ArrayUtils.contains(pkgInfo.splitNames, splitName)) { -- cgit v1.2.3-59-g8ed1b