diff options
author | Keith Craigie <kcraigie@google.com> | 2017-08-07 17:03:18 -0700 |
---|---|---|
committer | Keith Craigie <kcraigie@google.com> | 2017-08-08 20:56:11 +0000 |
commit | 883b96d5dddf7032b9735b42c623bdb2042a5afe (patch) | |
tree | b52145013014c7b30f83f992f5d747d0a16ddc84 /src | |
parent | d97f9e45a30cb7daed0552c3306f5a55e8e6a136 (diff) | |
download | android_packages_apps_PackageInstaller-883b96d5dddf7032b9735b42c623bdb2042a5afe.tar.gz android_packages_apps_PackageInstaller-883b96d5dddf7032b9735b42c623bdb2042a5afe.tar.bz2 android_packages_apps_PackageInstaller-883b96d5dddf7032b9735b42c623bdb2042a5afe.zip |
Fixed NPE in
com.android.packageinstaller.InstallStart#declaresAppOpPermission
Failing CTS tests in
android.packageinstaller.externalsources.cts.ExternalSourcesTest
reveal a NPE in InstallStart#declaresAppOpPermission. Turns out
android.content.pm.IPackageManager#getAppOpPermissionPackages can validly
return null, yet this code does not check for null before iterating.
Bug: 62272351
Test: Re-ran CTS test: run cts -m CtsExternalSourcesTestCases
-t android.packageinstaller.externalsources.cts.ExternalSourcesTest -l
DEBUG -s 01f2301c0f6ac226 -a armeabi-v7a
(cherry picked from commit 67f7aaef9646b5fcc6d1efcd10e623e9add33e7c)
Change-Id: I2637b4fd12f0d8487211f411bee850571d8bad9a
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/packageinstaller/InstallStart.java | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/InstallStart.java b/src/com/android/packageinstaller/InstallStart.java index f7aa5315..12441b50 100644 --- a/src/com/android/packageinstaller/InstallStart.java +++ b/src/com/android/packageinstaller/InstallStart.java @@ -131,6 +131,9 @@ public class InstallStart extends Activity { private boolean declaresAppOpPermission(int uid, String permission) { try { final String[] packages = mIPackageManager.getAppOpPermissionPackages(permission); + if (packages == null) { + return false; + } for (String packageName : packages) { try { if (uid == getPackageManager().getPackageUid(packageName, 0)) { |