diff options
author | Tom Hughes <tomhughes@chromium.org> | 2019-06-10 15:41:18 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-06-24 21:12:42 +0000 |
commit | 2a9ff55fe81d7fc7c86d62d5ca06aa4dbaf4f293 (patch) | |
tree | f5dc562774ceab86093852bce76ae4c3d3948155 /common | |
parent | 4f7f1b7fc6eec40094000e77e87f22f512f8321b (diff) | |
download | chrome-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')
-rw-r--r-- | common/fpsensor/fpsensor_state.c | 7 |
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). */ |