PackageManagerService: fix NPE while renaming foreign dex markers.

The User passed in to scan*LI is null during the initial boot scan
and maybeRenameForeignDexMarkers wasn't expecting it. We attempt to
rename markers for all users if that happens.

bug: 29167406
Change-Id: I892dcc542e75d62d72c062b8ce5506ef85df5fc2
This commit is contained in:
Narayan Kamath
2016-06-07 09:31:55 +01:00
parent 55cf361d83
commit cf70a17a71

View File

@@ -8613,7 +8613,11 @@ public class PackageManagerService extends IPackageManager.Stub {
// We don't expect installation to fail beyond this point
if (pkgSetting.pkg != null) {
maybeRenameForeignDexMarkers(pkgSetting.pkg, pkg, user);
// Note that |user| might be null during the initial boot scan. If a codePath
// for an app has changed during a boot scan, it's due to an app update that's
// part of the system partition and marker changes must be applied to all users.
maybeRenameForeignDexMarkers(pkgSetting.pkg, pkg,
(user != null) ? user : UserHandle.ALL);
}
// Add the new setting to mSettings