diff options
| author | 2017-08-22 10:48:18 -0700 | |
|---|---|---|
| committer | 2017-08-22 13:56:02 -0700 | |
| commit | 544b3835ddf97dfb982b532e957094ea806c8bc4 (patch) | |
| tree | d6fef2bc24ba017468d89dc7667195bc60bdc237 | |
| parent | 003bd7e3ec71284b46a706c2ac9e298b3ffea732 (diff) | |
make sure package info is non-null
Change-Id: Ib867075a79712de36c46f862d13e5fc1d0958f00
Fixes: 64812776
Test: manual
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageInstallerSession.java | 11 |
1 files 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)) { |