summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hai Zhang <zhanghai@google.com> 2024-02-15 23:04:00 +0000
committer Hai Zhang <zhanghai@google.com> 2024-02-23 00:16:13 +0000
commit1ba16aa8bf4958ef8eca7d372c6c01acf9955824 (patch)
tree0d5084f57fdaf3bbbbb1624e6cc6e3cd7f148059
parentdc8c435c25677dc4ac6d3cc777a78cd6aea5c308 (diff)
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)
-rw-r--r--services/permission/java/com/android/server/permission/access/permission/AppIdPermissionPolicy.kt9
1 files 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(