From bfaa9a92418b9517daf2e71c01b112813689cd13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= Date: Thu, 13 Oct 2022 15:24:34 +0200 Subject: [PATCH] upektc_img: Fix asynchronous problem in init_read_data_cb() --- libfprint/drivers/upektc_img.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libfprint/drivers/upektc_img.c b/libfprint/drivers/upektc_img.c index 0fa56d24..8898c5c2 100644 --- a/libfprint/drivers/upektc_img.c +++ b/libfprint/drivers/upektc_img.c @@ -549,10 +549,11 @@ init_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device, FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (dev); unsigned char *data = self->response; - if (!error) - fpi_ssm_next_state (transfer->ssm); - else - fpi_ssm_mark_failed (transfer->ssm, error); + if (error) + { + fpi_ssm_mark_failed (transfer->ssm, error); + return; + } if (data[12] == 0x06 && data[13] == 0x14) /* if get_info */ { @@ -608,6 +609,8 @@ init_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device, self->expected_image_size = img_class->img_width * img_class->img_height; self->image_bits = g_malloc0 (self->expected_image_size * 2); } + + fpi_ssm_next_state (transfer->ssm); } static void