diff options
| -rw-r--r-- | services/core/java/com/android/server/policy/AppOpsPolicy.java | 13 |
1 files changed, 11 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 607bc569ad64..50c4ade732b0 100644 --- a/services/core/java/com/android/server/policy/AppOpsPolicy.java +++ b/services/core/java/com/android/server/policy/AppOpsPolicy.java @@ -43,8 +43,6 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.util.function.DecFunction; import com.android.internal.util.function.HeptFunction; import com.android.internal.util.function.HexFunction; -import com.android.internal.util.function.NonaFunction; -import com.android.internal.util.function.OctFunction; import com.android.internal.util.function.QuadFunction; import com.android.internal.util.function.QuintFunction; import com.android.internal.util.function.TriFunction; @@ -313,6 +311,17 @@ public final class AppOpsPolicy implements AppOpsManagerInternal.CheckOpsDelegat if (appIdTags == null) { appIdTags = new ArrayMap<>(); } + + // Remove any invalid tags + boolean nullRemoved = packageTags.remove(null); + boolean nullStrRemoved = packageTags.remove("null"); + boolean emptyRemoved = packageTags.remove(""); + if (nullRemoved || nullStrRemoved || emptyRemoved) { + Log.e(LOG_TAG, "Attempted to add invalid source attribution tag, removed " + + "null: " + nullRemoved + " removed \"null\": " + nullStrRemoved + + " removed empty string: " + emptyRemoved); + } + appIdTags.put(packageName, packageTags); datastore.put(appId, appIdTags); } else if (appIdTags != null) { |