summaryrefslogtreecommitdiff
path: root/common/fpsensor
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2019-06-10 15:41:18 -0700
committerCommit Bot <commit-bot@chromium.org>2019-06-24 21:12:42 +0000
commit2a9ff55fe81d7fc7c86d62d5ca06aa4dbaf4f293 (patch)
treef5dc562774ceab86093852bce76ae4c3d3948155 /common/fpsensor
parent4f7f1b7fc6eec40094000e77e87f22f512f8321b (diff)
downloadchrome-ec-2a9ff55fe81d7fc7c86d62d5ca06aa4dbaf4f293.tar.gz
fpsensor: Don't allow enrolling more than the max number of fingers
This fix applies to both the console command and the host (when switching to FP_MODE_ENROLL_SESSION). BRANCH=nocturne BUG=b:124773209 TEST="fpenroll" multiple times in FP console => verify we get error after 5 attempts TEST=ectool --name=cros_fp fpmode enroll => verify we get error after 5 attempts TEST=make buildall -j Change-Id: I4e1d50f5e72d65d707e1889dee3036334f07f1eb Signed-off-by: Tom Hughes <tomhughes@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1650036 Reviewed-by: Nicolas Norvez <norvez@chromium.org>
Diffstat (limited to 'common/fpsensor')
-rw-r--r--common/fpsensor/fpsensor_state.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/common/fpsensor/fpsensor_state.c b/common/fpsensor/fpsensor_state.c
index 9767ed71dc..1004c4be70 100644
--- a/common/fpsensor/fpsensor_state.c
+++ b/common/fpsensor/fpsensor_state.c
@@ -128,6 +128,13 @@ static int validate_fp_mode(const uint32_t mode)
if (algo_mode & ~FP_VALID_MODES)
return EC_ERROR_INVAL;
+ if ((mode & FP_MODE_ENROLL_SESSION) &&
+ templ_valid >= FP_MAX_FINGER_COUNT) {
+ CPRINTS("Maximum number of fingers already enrolled: %d",
+ FP_MAX_FINGER_COUNT);
+ return EC_ERROR_INVAL;
+ }
+
/* Don't allow sensor reset if any other mode is
* set (including FP_MODE_RESET_SENSOR itself).
*/