From d848b10d2479dd2d7a3e2c6330ca72b8902f829d Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Mon, 1 Jun 2020 15:16:23 +0200 Subject: iface-modem-firmware: plug memleak when listing images ==80079== 1,377 (48 direct, 1,329 indirect) bytes in 1 blocks are definitely lost in loss record 5,200 of 5,232 ==80079== at 0x483977F: malloc (vg_replace_malloc.c:309) ==80079== by 0x5025AE9: g_malloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x5006223: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x4FEB59B: ??? (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x4FEE378: g_variant_builder_end (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x48F8314: mm_firmware_properties_get_dictionary (mm-firmware-properties.c:337) ==80079== by 0x1AAF29: load_current_ready (mm-iface-modem-firmware.c:80) ==80079== by 0x4E68653: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x4E68688: ??? (in /usr/lib/libgio-2.0.so.0.6400.2) ==80079== by 0x502B58E: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x502D530: ??? (in /usr/lib/libglib-2.0.so.0.6400.2) ==80079== by 0x502E542: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.6400.2) --- src/mm-iface-modem-firmware.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mm-iface-modem-firmware.c b/src/mm-iface-modem-firmware.c index 9268c4b7..5aedc4ad 100644 --- a/src/mm-iface-modem-firmware.c +++ b/src/mm-iface-modem-firmware.c @@ -76,10 +76,13 @@ load_current_ready (MMIfaceModemFirmware *self, /* Build array of dicts */ g_variant_builder_init (&builder, G_VARIANT_TYPE ("aa{sv}")); - for (l = ctx->list; l; l = g_list_next (l)) - g_variant_builder_add_value ( - &builder, - mm_firmware_properties_get_dictionary (MM_FIRMWARE_PROPERTIES (l->data))); + for (l = ctx->list; l; l = g_list_next (l)) { + GVariant *dict; + + dict = mm_firmware_properties_get_dictionary (MM_FIRMWARE_PROPERTIES (l->data)); + g_variant_builder_add_value (&builder, dict); + g_variant_unref (dict); + } mm_gdbus_modem_firmware_complete_list ( ctx->skeleton, -- cgit v1.2.3-70-g09d2