diff options
| author | 2021-09-17 13:20:01 +0000 | |
|---|---|---|
| committer | 2021-09-20 12:44:07 +0000 | |
| commit | 227595f050cdf4906384cc337fe06497011bf644 (patch) | |
| tree | fda3047ebf226d8fca648104e66b7f4c48699f22 | |
| parent | 2044a05ad6e2993f31811b42a437ec741075c7cd (diff) | |
Add null checks for ConcurrentHashmap queries
Ensure all queries done in CompatChange are only done for non-null
package names.
The previous change broke several tests.
Bug: 200155796
Test: atest com.android.server.wm.DisplayAreaTest#testGetOrientation
Change-Id: I7fc9ccb45987e03f6f172a077303c25d5ae1ccf3
Merged-In: I7fc9ccb45987e03f6f172a077303c25d5ae1ccf3
(cherry picked from commit 8596dd12caa96fcc3ecb808d8d6285504323d74b)
| -rw-r--r-- | services/core/java/com/android/server/compat/CompatChange.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/compat/CompatChange.java b/services/core/java/com/android/server/compat/CompatChange.java index f6ba369de769..b5846b555747 100644 --- a/services/core/java/com/android/server/compat/CompatChange.java +++ b/services/core/java/com/android/server/compat/CompatChange.java @@ -183,14 +183,15 @@ public final class CompatChange extends CompatibilityChangeInfo { */ synchronized boolean recheckOverride(String packageName, OverrideAllowedState allowedState, @Nullable Long versionCode) { + if (packageName == null) { + return false; + } boolean allowed = (allowedState.state == OverrideAllowedState.ALLOWED); - // If the app is not installed or no longer has raw overrides, evaluate to false if (versionCode == null || !mRawOverrides.containsKey(packageName) || !allowed) { removePackageOverrideInternal(packageName); return false; } - // Evaluate the override based on its version int overrideValue = mRawOverrides.get(packageName).evaluate(versionCode); switch (overrideValue) { @@ -266,6 +267,9 @@ public final class CompatChange extends CompatibilityChangeInfo { * @return {@code true} if the change should be enabled for the package. */ boolean willBeEnabled(String packageName) { + if (packageName == null) { + return defaultValue(); + } final PackageOverride override = mRawOverrides.get(packageName); if (override != null) { switch (override.evaluateForAllVersions()) { |