From 1ba16aa8bf4958ef8eca7d372c6c01acf9955824 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Thu, 15 Feb 2024 23:04:00 +0000 Subject: Fix NPE when PermissionEntry.getGids() returns null. PermissionEntry.gids may return null when parsing legacy config trying to work around an issue about upgrading from L platfrm. We can just ignore such entries now. Bug: 325137277 Bug: 322197421 Test: system boots with flag enabled Change-Id: I71a160d53b1a1b429019bb1973a892f78ccb0a17 Merged-In: I71a160d53b1a1b429019bb1973a892f78ccb0a17 (cherry picked from commit b0b149c456f3242f198bfe8559d12612c2afc15c) --- .../server/permission/access/permission/AppIdPermissionPolicy.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt b/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt index 571a2deba397..d7c1f9b116aa 100644 --- a/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt +++ b/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt @@ -586,8 +586,13 @@ class AppIdPermissionPolicy : SchemePolicy() { var areGidsPerUser = false if (!parsedPermission.isTree && packageState.isSystem) { newState.externalState.configPermissions[permissionName]?.let { - gids = it.gids - areGidsPerUser = it.perUser + // PermissionEntry.gids may return null when parsing legacy config trying + // to work around an issue about upgrading from L platfrm. We can just + // ignore such entries now. + if (it.gids != null) { + gids = it.gids + areGidsPerUser = it.perUser + } } } newPermission = Permission( -- cgit v1.2.3-59-g8ed1b