From ecbc2affb201c273d18b679ab86e460fc4bec850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 30 Jun 2026 13:57:37 +0200 Subject: [PATCH] upektc_img: Cleanup image bits on deactivation Also ensure we never leak data --- libfprint/drivers/upektc_img.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libfprint/drivers/upektc_img.c b/libfprint/drivers/upektc_img.c index 497d5b44..c8ca21f6 100644 --- a/libfprint/drivers/upektc_img.c +++ b/libfprint/drivers/upektc_img.c @@ -432,12 +432,10 @@ capture_run_state (FpiSsm *ssm, FpDevice *_dev) static void capture_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error_arg) { + g_autoptr(GError) error = error_arg; FpImageDevice *dev = FP_IMAGE_DEVICE (_dev); FpiDeviceUpektcImg *self = FPI_DEVICE_UPEKTC_IMG (_dev); - g_autoptr(GError) error = error_arg; - - /* Note: We assume that the error is a cancellation in the deactivation case */ if (self->deactivating) start_deactivation (dev); @@ -518,6 +516,7 @@ deactivate_sm_complete (FpiSsm *ssm, FpDevice *_dev, GError *error) fp_dbg ("Deactivate completed"); + g_clear_pointer (&self->image_bits, g_free); self->deactivating = FALSE; fpi_image_device_deactivate_complete (dev, error); } @@ -632,6 +631,7 @@ init_read_data_cb (FpiUsbTransfer *transfer, FpDevice *device, } self->expected_image_size = img_class->img_width * img_class->img_height; + g_clear_pointer (&self->image_bits, g_free); self->image_bits = g_malloc0 (self->expected_image_size * 2); }