From 8badfa84e9ab13c946dea416d69599f6cf285106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Mon, 19 Feb 2024 15:45:29 +0100 Subject: [PATCH] egismoc: Assert that current transfer is unset when setting it We need to ensure that we are not overwriting the instance transfer, so that we can be sure that we are only doing one transfer at time. Also we need to ensure that the ssm unsetting it, is the owner of it. --- libfprint/drivers/egismoc/egismoc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libfprint/drivers/egismoc/egismoc.c b/libfprint/drivers/egismoc/egismoc.c index 08e514bd..0673bfed 100644 --- a/libfprint/drivers/egismoc/egismoc.c +++ b/libfprint/drivers/egismoc/egismoc.c @@ -263,6 +263,9 @@ egismoc_cmd_ssm_done (FpiSsm *ssm, FpiDeviceEgisMoc *self = FPI_DEVICE_EGISMOC (device); CommandData *data = fpi_ssm_get_data (ssm); + g_assert (self->cmd_ssm == ssm); + g_assert (!self->cmd_transfer || self->cmd_transfer->ssm == ssm); + self->cmd_ssm = NULL; self->cmd_transfer = NULL; @@ -373,6 +376,8 @@ egismoc_exec_cmd (FpDevice *device, buffer_out_length, g_free); transfer->ssm = self->cmd_ssm; + + g_assert (self->cmd_transfer == NULL); self->cmd_transfer = g_steal_pointer (&transfer); data->callback = callback;