diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-08-13 01:00:50 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-08-13 01:00:50 +0000 |
commit | aa8767226a14528ef0ca0f431119875b714adb4f (patch) | |
tree | 4adc9820e77119d00b4c46d80ecf9f5e62e2ecf6 | |
parent | 9eeac29404ed13c9d44e09f7408b68cac7ae3b1f (diff) | |
parent | b7b2241dec3676319228f1f4f88558c53d1f7a7b (diff) | |
download | goldfish-android12-d1-s6-release.tar.gz |
Snap for 7637344 from b7b2241dec3676319228f1f4f88558c53d1f7a7b to sc-d1-releaseandroid-12.0.0_r7android-12.0.0_r6android-12.0.0_r5android-12.0.0_r4android-12.0.0_r15android-12.0.0_r14android-12.0.0_r13android-12.0.0_r12android12-d1-s6-releaseandroid12-d1-s5-releaseandroid12-d1-s4-releaseandroid12-d1-s3-releaseandroid12-d1-s2-releaseandroid12-d1-s1-releaseandroid12-d1-release
Change-Id: Iaa85ca0562def67f5ecbc8363b489e85f7642466
-rw-r--r-- | fingerprint/fingerprint.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/fingerprint/fingerprint.c b/fingerprint/fingerprint.c index d89145c0..dff5d98c 100644 --- a/fingerprint/fingerprint.c +++ b/fingerprint/fingerprint.c @@ -267,13 +267,6 @@ static int fingerprint_set_active_group(struct fingerprint_device *device, uint3 uint64_t authenticator_id = 0; loadFingerprints(&qdev->listener); loadAuthenticatorId(qdev->listener.authid_filename, &authenticator_id); - if (authenticator_id == 0) { - // firs time, create an authenticator id - authenticator_id = get_64bit_rand(); - // save it to disk - saveAuthenticatorId(qdev->listener.authid_filename, authenticator_id); - } - qdev->authenticator_id = authenticator_id; pthread_mutex_unlock(&qdev->lock); @@ -538,6 +531,22 @@ static int fingerprint_remove(struct fingerprint_device *device, device->notify(&msg); } + // where there are no enrollment, reset authenticator id to 0 + bool has_fingerprints = false; + for (idx = 0; idx < MAX_NUM_FINGERS; idx++) { + uint32_t theFid = qdev->listener.fingerid[idx]; + if (theFid != 0) { + has_fingerprints = true; + break; + } + } + + if (!has_fingerprints) { + qdev->authenticator_id = 0; + saveAuthenticatorId(qdev->listener.authid_filename, qdev->authenticator_id); + } + + return 0; } @@ -637,6 +646,10 @@ static void send_enroll_notice(qemu_fingerprint_device_t* qdev, int fid) { qdev->listener.secureid[idx] = qdev->secure_user_id; qdev->listener.fingerid[idx] = fid; saveFingerprint(&qdev->listener, idx); + uint64_t authenticator_id = get_64bit_rand(); + // save it to disk + saveAuthenticatorId(qdev->listener.authid_filename, authenticator_id); + qdev->authenticator_id = authenticator_id; qdev->listener.state = STATE_IDLE; } pthread_mutex_unlock(&qdev->lock); |