Merge "make sure package info is non-null" into oc-mr1-dev am: 63b3eff31a
am: f716244802
Change-Id: Ifd73501b25b8487dd036abb56252feae6ef96d94
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 648586e..69db49b 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 android.Manifest;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
@@ -737,7 +738,7 @@
*
* @param pkgInfo The package info for {@link #params}.packagename
*/
- private void sealAndValidateLocked(PackageInfo pkgInfo)
+ private void sealAndValidateLocked(@Nullable PackageInfo pkgInfo)
throws PackageManagerException {
assertNoWriteFileTransfersOpenLocked();
@@ -929,7 +930,8 @@
* 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;
@@ -1010,6 +1012,11 @@
}
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)) {