diff options
| author | 2014-04-15 12:57:47 -0700 | |
|---|---|---|
| committer | 2014-04-15 12:57:47 -0700 | |
| commit | 3014733c8c10de1875de98922e03698416f94e7a (patch) | |
| tree | 6b0afd70ee5adbae54d344f1cd5aab81d8fd765c | |
| parent | 1c3f409284b47312c1c7e5d36283df9a05d29dfb (diff) | |
Don't crash if a null key is passed for verification/parsing
Change-Id: I77c496d9d86d2831a4166a924afe1493aa0ac0ce
| -rw-r--r-- | core/java/android/content/pm/PackageParser.java | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 4b5616f6583f..8d8d220abfe6 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -3292,19 +3292,23 @@ public class PackageParser { if (packageName == null || packageName.length() == 0) { Slog.i(TAG, "verifier package name was null; skipping"); return null; - } else if (encodedPublicKey == null) { - Slog.i(TAG, "verifier " + packageName + " public key was null; skipping"); } - PublicKey publicKey = parsePublicKey(encodedPublicKey); - if (publicKey != null) { - return new VerifierInfo(packageName, publicKey); + final PublicKey publicKey = parsePublicKey(encodedPublicKey); + if (publicKey == null) { + Slog.i(TAG, "Unable to parse verifier public key for " + packageName); + return null; } - return null; + return new VerifierInfo(packageName, publicKey); } - public static final PublicKey parsePublicKey(String encodedPublicKey) { + public static final PublicKey parsePublicKey(final String encodedPublicKey) { + if (encodedPublicKey == null) { + Slog.i(TAG, "Could not parse null public key"); + return null; + } + EncodedKeySpec keySpec; try { final byte[] encoded = Base64.decode(encodedPublicKey, Base64.DEFAULT); |