diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java index 121b7c87223bf..31b8ef28f2464 100644 --- a/services/core/java/com/android/server/locksettings/LockSettingsService.java +++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java @@ -1156,18 +1156,21 @@ public class LockSettingsService extends ILockSettings.Stub { @Override public void setBoolean(String key, boolean value, int userId) { checkWritePermission(); + Objects.requireNonNull(key); mStorage.setBoolean(key, value, userId); } @Override public void setLong(String key, long value, int userId) { checkWritePermission(); + Objects.requireNonNull(key); mStorage.setLong(key, value, userId); } @Override public void setString(String key, String value, int userId) { checkWritePermission(); + Objects.requireNonNull(key); mStorage.setString(key, value, userId); } diff --git a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java index 41e3a08be6c56..60a033fde4270 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java @@ -423,6 +423,21 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { checkPasswordHistoryLength(userId, 3); } + @Test(expected=NullPointerException.class) + public void testSetBooleanRejectsNullKey() { + mService.setBoolean(null, false, 0); + } + + @Test(expected=NullPointerException.class) + public void testSetLongRejectsNullKey() { + mService.setLong(null, 0, 0); + } + + @Test(expected=NullPointerException.class) + public void testSetStringRejectsNullKey() { + mService.setString(null, "value", 0); + } + private void checkPasswordHistoryLength(int userId, int expectedLen) { String history = mService.getString(LockPatternUtils.PASSWORD_HISTORY_KEY, "", userId); String[] hashes = TextUtils.split(history, LockPatternUtils.PASSWORD_HISTORY_DELIMITER);