From 2e7197c2ae0a5983e86d9dacb0ce5357c5873c3e Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Fri, 4 Feb 2022 19:00:44 +0000 Subject: [PATCH] Fix possible NPE in DPMS. If there's no ActiveAdmin for the given user then the ternary expression would return null, which immediately will throw an NPE as it gets auto-unboxed into from Boolean to boolean. Bug: 217923092 Test: errorprone build Change-Id: I4043f0061e5a23e4d5aa408917f6d51b8bbf22ec --- services/Android.bp | 1 + .../android/server/devicepolicy/DevicePolicyManagerService.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/services/Android.bp b/services/Android.bp index c8b4969d285f2..4623ff9efce8c 100644 --- a/services/Android.bp +++ b/services/Android.bp @@ -17,6 +17,7 @@ java_defaults { "-Xep:AndroidFrameworkCompatChange:ERROR", // "-Xep:AndroidFrameworkUid:ERROR", "-Xep:SelfEquals:ERROR", + "-Xep:NullTernary:ERROR", // NOTE: only enable to generate local patchfiles // "-XepPatchChecks:refaster:frameworks/base/errorprone/refaster/EfficientXml.java.refaster", // "-XepPatchLocation:/tmp/refaster/", diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index e99b1f9a408c7..7f4dcdcef44a6 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -6847,7 +6847,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { String.format(NOT_SYSTEM_CALLER_MSG, "call isAlwaysOnVpnLockdownEnabledForUser")); synchronized (getLockObject()) { ActiveAdmin admin = getDeviceOrProfileOwnerAdminLocked(userHandle); - return admin != null ? admin.mAlwaysOnVpnLockdown : null; + return admin != null && admin.mAlwaysOnVpnLockdown; } }