From 813a4bd48de33efe5c882ad3b9258e88d6d10fd7 Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Mon, 18 Mar 2013 15:17:55 -0700 Subject: PackageUtil: don't collect certs if package doesn't exist If packageParser.parsePackage() returns null, don't attempt call packageParser.collectCertificates(). This fixes a NPE triggered by the following command: am start -a android.intent.action.VIEW -d file:///blah/blah.apk -t application/vnd.android.package-archive Change-Id: I6f6f836734d4b4ee07e98ee6b1f6339fa675b8b0 --- src/com/android/packageinstaller/PackageUtil.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/com/android/packageinstaller/PackageUtil.java b/src/com/android/packageinstaller/PackageUtil.java index 20dce430..5263b71c 100644 --- a/src/com/android/packageinstaller/PackageUtil.java +++ b/src/com/android/packageinstaller/PackageUtil.java @@ -72,9 +72,12 @@ public class PackageUtil { metrics.setToDefaults(); PackageParser.Package pkg = packageParser.parsePackage(sourceFile, archiveFilePath, metrics, 0); - packageParser.collectCertificates(pkg, 0); - // Nuke the parser reference. - packageParser = null; + if (pkg == null) { + return null; + } + if (!packageParser.collectCertificates(pkg, 0)) { + return null; + } return pkg; } -- cgit v1.2.3