Snap for 7637344 from b7b2241dec3676319228f1f4f88558c53d1f7a7b to sc-d1-release
Change-Id: Iaa85ca0562def67f5ecbc8363b489e85f7642466
diff --git a/fingerprint/fingerprint.c b/fingerprint/fingerprint.c
index d89145c..dff5d98 100644
--- a/fingerprint/fingerprint.c
+++ b/fingerprint/fingerprint.c
@@ -267,13 +267,6 @@
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 @@
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 @@
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);