From be62ae7d357846031b51339c57d425a453b40178 Mon Sep 17 00:00:00 2001 From: Alex Buynytskyy Date: Thu, 24 Feb 2022 12:04:20 -0800 Subject: [PATCH] Add null check if shared user not found. Bug: 221205043 Fixes: 221205043 Test: presubmit Change-Id: I3c812dd9f3993366604816237d6a4f24d5e289f0 --- .../core/java/com/android/server/pm/Settings.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 394c8fb731562..3e5ab1e058d9f 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -3906,13 +3906,17 @@ public final class Settings implements Watchable, Snappable { } else if (tagName.equals(TAG_PERMISSIONS)) { final LegacyPermissionState legacyState; if (packageSetting.hasSharedUser()) { - legacyState = getSettingLPr( - packageSetting.getSharedUserAppId()).getLegacyPermissionState(); + final SettingBase sharedUserSettings = getSettingLPr( + packageSetting.getSharedUserAppId()); + legacyState = sharedUserSettings != null + ? sharedUserSettings.getLegacyPermissionState() : null; } else { legacyState = packageSetting.getLegacyPermissionState(); } - readInstallPermissionsLPr(parser, legacyState, users); - packageSetting.setInstallPermissionsFixed(true); + if (legacyState != null) { + readInstallPermissionsLPr(parser, legacyState, users); + packageSetting.setInstallPermissionsFixed(true); + } } else if (tagName.equals("proper-signing-keyset")) { long id = parser.getAttributeLong(null, "identifier"); Integer refCt = mKeySetRefs.get(id);