diff --git a/debian/patches/0001-imgdev-fix-enum-mismatch-for-dev_change_state-call.patch b/debian/patches/0001-imgdev-fix-enum-mismatch-for-dev_change_state-call.patch new file mode 100644 index 00000000..d726e9b6 --- /dev/null +++ b/debian/patches/0001-imgdev-fix-enum-mismatch-for-dev_change_state-call.patch @@ -0,0 +1,42 @@ +From 9f408bf51b7740e87c3d0b90e5adc5de3c37c052 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Tue, 7 Oct 2014 08:18:41 +0300 +Subject: [PATCH 1/2] 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 +--- + libfprint/imgdev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +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: +-- +2.1.4 + diff --git a/debian/patches/0002-vfs101-Logical-conjunction-always-evaluates-to-false.patch b/debian/patches/0002-vfs101-Logical-conjunction-always-evaluates-to-false.patch new file mode 100644 index 00000000..f7b67dce --- /dev/null +++ b/debian/patches/0002-vfs101-Logical-conjunction-always-evaluates-to-false.patch @@ -0,0 +1,25 @@ +From 45fb6d790815eec3d9e08a9e459a325fbb9addc0 Mon Sep 17 00:00:00 2001 +From: Carlos Olmedo Escobar +Date: Fri, 6 Feb 2015 17:22:16 +0100 +Subject: [PATCH 2/2] vfs101: Logical conjunction always evaluates to false. + +--- + libfprint/drivers/vfs101.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libfprint/drivers/vfs101.c b/libfprint/drivers/vfs101.c +index db0b06e..84624eb 100644 +--- a/libfprint/drivers/vfs101.c ++++ b/libfprint/drivers/vfs101.c +@@ -186,7 +186,7 @@ static int result_codes[2][RESULT_COUNT] = + static int result_code(struct fp_img_dev *dev, int result) + { + /* Check result value */ +- if (result < 0 && result >= RESULT_COUNT) ++ if (result < 0 || result >= RESULT_COUNT) + return result; + + /* Return result code */ +-- +2.1.4 + diff --git a/debian/patches/series b/debian/patches/series index 15f33bb4..5a4230f3 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,6 @@ # Upstream backports +0001-imgdev-fix-enum-mismatch-for-dev_change_state-call.patch +0002-vfs101-Logical-conjunction-always-evaluates-to-false.patch # Debian specifics kFreeBSD_FTBFS_add_ETIME_definition.patch