aboutsummaryrefslogtreecommitdiffstats
path: root/main/libfprint/0001-imgdev-fix-enum-mismatch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/libfprint/0001-imgdev-fix-enum-mismatch.patch')
-rw-r--r--main/libfprint/0001-imgdev-fix-enum-mismatch.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/main/libfprint/0001-imgdev-fix-enum-mismatch.patch b/main/libfprint/0001-imgdev-fix-enum-mismatch.patch
new file mode 100644
index 0000000000..19bc7f69f6
--- /dev/null
+++ b/main/libfprint/0001-imgdev-fix-enum-mismatch.patch
@@ -0,0 +1,39 @@
+From 9f408bf51b7740e87c3d0b90e5adc5de3c37c052 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Tue, 7 Oct 2014 08:18:41 +0300
+Subject: imgdev: fix enum mismatch for dev_change_state() call
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This bug has existed long time, but it was uncovered by commit
+e215b0509448 which enabled multiple enrollment rounds.
+
+In practice this broke (at least) URU4000 driver state machine
+causing it to enter indefinite loop - due to the invalid state
+change callback.
+
+Patch originally posted at:
+http://lists.freedesktop.org/archives/fprint/2014-June/000603.html
+
+Test and verification results:
+http://lists.freedesktop.org/archives/fprint/2014-June/000607.html
+
+Signed-off-by: Timo Teräs <timo.teras@iki.fi>
+
+diff --git a/libfprint/imgdev.c b/libfprint/imgdev.c
+index f960ee3..3b5d3f3 100644
+--- a/libfprint/imgdev.c
++++ b/libfprint/imgdev.c
+@@ -159,7 +159,7 @@ void fpi_imgdev_report_finger_status(struct fp_img_dev *imgdev,
+ r > 0 && r != FP_ENROLL_COMPLETE && r != FP_ENROLL_FAIL) {
+ imgdev->action_result = 0;
+ imgdev->action_state = IMG_ACQUIRE_STATE_AWAIT_FINGER_ON;
+- dev_change_state(imgdev, IMG_ACQUIRE_STATE_AWAIT_FINGER_ON);
++ dev_change_state(imgdev, IMGDEV_STATE_AWAIT_FINGER_ON);
+ }
+ break;
+ case IMG_ACTION_VERIFY:
+--
+cgit v0.10.2
+