From 0bc18b37ac912b5b06aedbbe307ef29c4351b7c9 Mon Sep 17 00:00:00 2001 From: Patrick Baumann Date: Tue, 26 May 2020 06:28:33 -0700 Subject: Fixes NPE on null pkg This change moves unprotected access of a setting's pkg field to take place after an existing null check. Test: atest AppEnumerationTests Fixes: 157298411 Change-Id: I49c0cb0d08dd09cabd271cf195a8eff71a98083c --- services/core/java/com/android/server/pm/AppsFilter.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java index f9d805e57305..311c36f2808f 100644 --- a/services/core/java/com/android/server/pm/AppsFilter.java +++ b/services/core/java/com/android/server/pm/AppsFilter.java @@ -446,11 +446,6 @@ public class AppsFilter { } } - if (!newPkgSetting.pkg.getProtectedBroadcasts().isEmpty()) { - mProtectedBroadcasts.addAll(newPkgSetting.pkg.getProtectedBroadcasts()); - recomputeComponentVisibility(existingSettings, newPkgSetting.pkg.getPackageName()); - } - Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "filter.addPackage"); try { final AndroidPackage newPkg = newPkgSetting.pkg; @@ -459,6 +454,11 @@ public class AppsFilter { return; } + if (!newPkg.getProtectedBroadcasts().isEmpty()) { + mProtectedBroadcasts.addAll(newPkg.getProtectedBroadcasts()); + recomputeComponentVisibility(existingSettings, newPkg.getPackageName()); + } + final boolean newIsForceQueryable = mForceQueryable.contains(newPkgSetting.appId) /* shared user that is already force queryable */ -- cgit v1.2.3-59-g8ed1b