aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2022-11-08 21:29:56 +0000
committerAleksander Morgado <aleksandermj@chromium.org>2022-11-08 21:29:56 +0000
commit24fd0026ecd290e6a794515723ae4e6d1206bbf2 (patch)
tree068a1cbfdbc8059dbf87e1eb2bfb1bdd52781ae6 /src
parent64c77e3114e2c5585eb76f9fef572428eb056d46 (diff)
iface-modem-3gpp: fix memory leak when processing PCOs
==109786== 2,798 (96 direct, 2,702 indirect) bytes in 2 blocks are definitely lost in loss record 5,882 of 5,903 ==109786== at 0x4841888: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==109786== by 0x4A01329: g_malloc (gmem.c:130) ==109786== by 0x4A23F17: g_slice_alloc (gslice.c:1074) ==109786== by 0x4A4B8F8: UnknownInlinedFun (gvariant-core.c:488) ==109786== by 0x4A4B8F8: UnknownInlinedFun (gvariant-core.c:626) ==109786== by 0x4A4B8F8: g_variant_builder_end (gvariant.c:3756) ==109786== by 0x48FD6DC: mm_pco_to_variant (mm-pco.c:251) ==109786== by 0x1AB397: mm_iface_modem_3gpp_update_pco_list (mm-iface-modem-3gpp.c:2274) ==109786== by 0x2306DF: ms_basic_connect_extensions_notification_pco (mm-broadband-modem-mbim.c:5101) ==109786== by 0x2306DF: ms_basic_connect_extensions_notification (mm-broadband-modem-mbim.c:5280) ==109786== by 0x2306DF: device_notification_cb (mm-broadband-modem-mbim.c:5332) ==109786== by 0x4CD3BD6: g_cclosure_marshal_VOID__BOXEDv (gmarshal.c:1686) ==109786== by 0x4CED11B: UnknownInlinedFun (gclosure.c:895) ==109786== by 0x4CED11B: g_signal_emit_valist (gsignal.c:3456) ==109786== by 0x4CED203: g_signal_emit (gsignal.c:3606) ==109786== by 0x50ADA0F: indication_ready (mbim-device.c:870) ==109786== by 0x4B92DD3: g_task_return_now (gtask.c:1232)
Diffstat (limited to 'src')
-rw-r--r--src/mm-iface-modem-3gpp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
index 68b0048c..2cf56a34 100644
--- a/src/mm-iface-modem-3gpp.c
+++ b/src/mm-iface-modem-3gpp.c
@@ -2271,8 +2271,10 @@ mm_iface_modem_3gpp_update_pco_list (MMIfaceModem3gpp *self,
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ubay)"));
for (iter = pco_list; iter; iter = g_list_next (iter)) {
- g_variant_builder_add_value (&builder,
- mm_pco_to_variant (MM_PCO (iter->data)));
+ g_autoptr(GVariant) pco_variant = NULL;
+
+ pco_variant = mm_pco_to_variant (MM_PCO (iter->data));
+ g_variant_builder_add_value (&builder, pco_variant);
}
variant = g_variant_ref_sink (g_variant_builder_end (&builder));
mm_gdbus_modem3gpp_set_pco (skeleton, variant);