From 5c22e835fc3cd88c0d2c7741f863a3353cb2ba43 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Thu, 17 Feb 2022 06:22:35 +0000 Subject: [PATCH] Fix NPE in updateActivityRecognizerTags(). ServiceInfo.metadata may be null when empty and we shouldn't crash the system for this. Test: presubmit Change-Id: I8b1d458e8cccb911b3bfebfb86851dc1d71d72cf --- .../core/java/com/android/server/policy/AppOpsPolicy.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/policy/AppOpsPolicy.java b/services/core/java/com/android/server/policy/AppOpsPolicy.java index 18c45e494c9bb..4ad6ed1f45e27 100644 --- a/services/core/java/com/android/server/policy/AppOpsPolicy.java +++ b/services/core/java/com/android/server/policy/AppOpsPolicy.java @@ -33,6 +33,7 @@ import android.content.pm.ResolveInfo; import android.location.LocationManagerInternal; import android.net.Uri; import android.os.Binder; +import android.os.Bundle; import android.os.IBinder; import android.os.PackageTagsList; import android.os.Process; @@ -342,8 +343,11 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat + Intent.ACTION_ACTIVITY_RECOGNIZER + ", ignoring!"); return; } - final String tagsList = resolvedService.serviceInfo.metaData.getString( - ACTIVITY_RECOGNITION_TAGS); + final Bundle metaData = resolvedService.serviceInfo.metaData; + if (metaData == null) { + return; + } + final String tagsList = metaData.getString(ACTIVITY_RECOGNITION_TAGS); if (!TextUtils.isEmpty(tagsList)) { PackageTagsList packageTagsList = new PackageTagsList.Builder(1).add( resolvedService.serviceInfo.packageName,