Fix NPE when querying for already uninstalled package.

It's possible that by the time StorageManagerService receives
the opChanged() callback, the package whose appop was allowed/denied
has already been uninstalled.

Bug: 133442691
Test: manual
Test: atest android.permission2.cts.RestrictedPermissionsTest
Test: atest cts/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java
Change-Id: Ia032fe174c8796cafffba22036c2afe974c7dea8
This commit is contained in:
Sudheer Shanka
2019-05-24 10:59:52 -07:00
parent fb162ef0d3
commit 1df72db26f

View File

@@ -3597,6 +3597,10 @@ class StorageManagerService extends IStorageManager.Stub
}
final String[] packagesForUid = mIPackageManager.getPackagesForUid(uid);
if (ArrayUtils.isEmpty(packagesForUid)) {
// It's possible the package got uninstalled already, so just ignore.
return Zygote.MOUNT_EXTERNAL_NONE;
}
if (packageName == null) {
packageName = packagesForUid[0];
}