Backport two upstream patches:

- imgdev: fix enum mismatch for dev_change_state() call
- vfs101: Logical conjunction always evaluates to false
This commit is contained in:
Didier Raboud
2015-03-03 09:01:39 +01:00
parent 1ed83cabed
commit ceb8c8fdff
3 changed files with 69 additions and 0 deletions
@@ -0,0 +1,42 @@
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: [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 <timo.teras@iki.fi>
---
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
@@ -0,0 +1,25 @@
From 45fb6d790815eec3d9e08a9e459a325fbb9addc0 Mon Sep 17 00:00:00 2001
From: Carlos Olmedo Escobar <carlos.olmedo.e@gmail.com>
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
+2
View File
@@ -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