From 9b3e9d9e8cee8385175800f4385ec437337590d5 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Fri, 6 Dec 2019 16:22:26 +0100
Subject: [PATCH] elan: Fix frames being leaked

==24440== 14,416 bytes in 2 blocks are possibly lost in loss record 9,233 of 9,261
==24440==    at 0x483980B: malloc (vg_replace_malloc.c:309)
==24440==    by 0x7846BB8: g_malloc (gmem.c:102)
==24440==    by 0x48A2ABC: elan_process_frame_thirds (elan.c:277)
==24440==    by 0x785FB37: g_slist_foreach (gslist.c:864)
==24440==    by 0x48A57EE: elan_submit_image (elan.c:320)
==24440==    by 0x48A57EE: capture_complete (elan.c:591)
==24440==    by 0x4880C9C: fpi_ssm_mark_completed (fpi-ssm.c:369)
==24440==    by 0x4881003: fpi_ssm_mark_failed (fpi-ssm.c:437)
==24440==    by 0x48A5424: elan_cmd_cb (elan.c:347)
==24440==    by 0x4882296: transfer_finish_cb (fpi-usb-transfer.c:351)
==24440==    by 0x79BFC68: g_task_return_now (gtask.c:1214)
==24440==    by 0x79BFCA8: complete_in_idle_cb (gtask.c:1228)
==24440==    by 0x78410BD: g_main_dispatch (gmain.c:3272)
==24440==    by 0x78410BD: g_main_context_dispatch (gmain.c:3937)
---
 libfprint/drivers/elan.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libfprint/drivers/elan.c b/libfprint/drivers/elan.c
index 9495a48..d27cc05 100644
--- a/libfprint/drivers/elan.c
+++ b/libfprint/drivers/elan.c
@@ -320,6 +320,7 @@ elan_submit_image (FpImageDevice *dev)
   g_slist_foreach (raw_frames, (GFunc) self->process_frame, &frames);
   fpi_do_movement_estimation (&assembling_ctx, frames);
   img = fpi_assemble_frames (&assembling_ctx, frames);
+  g_slist_free_full (frames, g_free);
 
   fpi_image_device_image_captured (dev, img);
 }