diff --git a/libfprint/drivers/synaptics/synaptics.c b/libfprint/drivers/synaptics/synaptics.c index d2ee0be..1632e5c 100644 --- a/libfprint/drivers/synaptics/synaptics.c +++ b/libfprint/drivers/synaptics/synaptics.c @@ -199,9 +199,17 @@ cmd_interrupt_cb (FpiUsbTransfer *transfer, } if (transfer->buffer[0] & USB_ASYNC_MESSAGE_PENDING) - fpi_ssm_next_state (transfer->ssm); + { + fpi_ssm_next_state (transfer->ssm); + } else - fpi_usb_transfer_submit (transfer, 1000, NULL, cmd_interrupt_cb, NULL); + { + fpi_usb_transfer_submit (fpi_usb_transfer_ref (transfer), + 1000, + NULL, + cmd_interrupt_cb, + NULL); + } } static void