From 83ab85410b98bb6e4e01be5db54ec244aeeb3182 Mon Sep 17 00:00:00 2001 From: Andrew Scull Date: Wed, 20 Jul 2016 17:04:39 +0100 Subject: Only check password length for relevant qualities. The minimum password length is only required for certain password qualities so only check the minimum length in those cases. Bug: 30109030 Change-Id: I330c88fc0b22179e126fc1241a9c58d5e0d73e8e --- .../server/devicepolicy/DevicePolicyManagerService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index feeed8b922da..d0aeb928dd1b 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -3672,12 +3672,16 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { private boolean isActivePasswordSufficientForUserLocked( DevicePolicyData policy, int userHandle, boolean parent) { - if (policy.mActivePasswordQuality < getPasswordQuality(null, userHandle, parent) - || policy.mActivePasswordLength < getPasswordMinimumLength( + final int requiredPasswordQuality = getPasswordQuality(null, userHandle, parent); + if (policy.mActivePasswordQuality < requiredPasswordQuality) { + return false; + } + if (requiredPasswordQuality >= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC + && policy.mActivePasswordLength < getPasswordMinimumLength( null, userHandle, parent)) { return false; } - if (policy.mActivePasswordQuality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) { + if (requiredPasswordQuality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) { return true; } return policy.mActivePasswordUpperCase >= getPasswordMinimumUpperCase( -- cgit v1.2.3-59-g8ed1b