1
From 8a87ba448c62eb14fa51d70ce870dd10b67ba76b Mon Sep 17 00:00:00 2001
2
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
3
Date: Mon, 3 Dec 2012 09:51:27 +0200
4
Subject: [PATCH] uru4000: fix cancelling of imaging from error callback
6
Call error callback before resetting img_transfer to NULL. This
7
variable is internally used to detect if we are still in imaging
8
loop and the call to execute_state_change() needs to be postponed.
9
Since this is the final thing imaging_complete() we can't reset
10
img_transfer until just before this call.
12
https://bugs.freedesktop.org/show_bug.cgi?id=57829
14
libfprint/drivers/uru4000.c | 9 ++++++---
15
1 file changed, 6 insertions(+), 3 deletions(-)
17
diff --git a/libfprint/drivers/uru4000.c b/libfprint/drivers/uru4000.c
18
index 07e26a4..ccaa87f 100644
19
--- a/libfprint/drivers/uru4000.c
20
+++ b/libfprint/drivers/uru4000.c
21
@@ -789,15 +789,18 @@ static void imaging_complete(struct fpi_ssm *ssm)
25
+ /* Report error before exiting imaging loop - the error handler
26
+ * can request state change, which needs to be postponed to end of
29
+ fpi_imgdev_session_error(dev, r);
31
g_free(urudev->img_data);
32
urudev->img_data = NULL;
34
libusb_free_transfer(urudev->img_transfer);
35
urudev->img_transfer = NULL;
38
- fpi_imgdev_session_error(dev, r);
40
r = execute_state_change(dev);
42
fpi_imgdev_session_error(dev, r);