diff --git a/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java b/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java index 85938360d4ae0..2ea752cfb9fd1 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/hidl/Face10.java @@ -482,7 +482,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider { @Override public long getAuthenticatorId(int sensorId, int userId) { - return mAuthenticatorIds.get(userId); + return mAuthenticatorIds.getOrDefault(userId, 0L); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java index e57e675b4455a..3c67337898e89 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java @@ -682,7 +682,7 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider @Override public long getAuthenticatorId(int sensorId, int userId) { - return mAuthenticatorIds.get(userId); + return mAuthenticatorIds.getOrDefault(userId, 0L); } @Override diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/hidl/Face10Test.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/hidl/Face10Test.java index 99aab5c7a6af8..392535e8eea1a 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/hidl/Face10Test.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/face/hidl/Face10Test.java @@ -16,6 +16,8 @@ package com.android.server.biometrics.sensors.face.hidl; +import static junit.framework.Assert.assertEquals; + import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -75,6 +77,12 @@ public class Face10Test { mBinder = new Binder(); } + @Test + public void getAuthenticatorId_doesNotCrashWhenIdNotFound() { + assertEquals(0, mFace10.getAuthenticatorId(0 /* sensorId */, 111 /* userId */)); + waitForIdle(); + } + @Test public void scheduleRevokeChallenge_doesNotCrash() { mFace10.scheduleRevokeChallenge(0 /* sensorId */, 0 /* userId */, mBinder, TAG, diff --git a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21Test.java b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21Test.java index b2aeb33039f5f..61cc8e6e8ea30 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21Test.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21Test.java @@ -16,6 +16,8 @@ package com.android.server.biometrics.sensors.fingerprint.hidl; +import static junit.framework.Assert.assertEquals; + import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -84,6 +86,12 @@ public class Fingerprint21Test { mHalResultController); } + @Test + public void getAuthenticatorId_doesNotCrashWhenIdNotFound() { + assertEquals(0, mFingerprint21.getAuthenticatorId(0 /* sensorId */, 111 /* userId */)); + waitForIdle(); + } + @Test public void halServiceDied_resetsScheduler() { // It's difficult to test the linkToDeath --> serviceDied path, so let's just invoke