summaryrefslogtreecommitdiff
path: root/tp-account-widgets
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2015-07-29 09:59:21 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2015-07-30 11:44:29 +0200
commita46f4319089a27b5948a8941201a2de3d442e487 (patch)
tree4410a7eea819644e79a6af0358264170a4491489 /tp-account-widgets
parent6a4a30ff016b31cf366daa1e1854e20da45bf9fa (diff)
downloadtelepathy-account-widgets-a46f4319089a27b5948a8941201a2de3d442e487.tar.gz
Properly fix tp_list_connection_managers_finish() leak
Commit 103ed6232 attempted to fix a leak in tp_list_connection_managers_finish() but it was incomplete as it only freed the returned GList with g_list_free() while the list elements must be freed too. This commit addresses that using g_list_free_full() ==9013== at 0x4A06C50: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==9013== by 0x7F150AC: g_malloc (gmem.c:97) ==9013== by 0x7F2E0F7: g_slice_alloc (gslice.c:1007) ==9013== by 0x7F091B7: g_list_copy_deep (glist.c:678) ==9013== by 0x7F09184: g_list_copy (glist.c:633) ==9013== by 0x370B157A64: _tp_g_list_copy_deep (util.c:2117) ==9013== by 0x4FB06C5: tpaw_connection_managers_listed_cb (tpaw-connection-managers.c:209) ==9013== by 0x7929107: g_simple_async_result_complete (gsimpleasyncresult.c:801) ==9013== by 0x7929153: complete_in_idle_cb (gsimpleasyncresult.c:813) ==9013== by 0x7F0F470: g_idle_dispatch (gmain.c:5397) ==9013== by 0x7F0CAB8: g_main_dispatch (gmain.c:3122) ==9013== by 0x7F0D8FC: g_main_context_dispatch (gmain.c:3737) ==9013== by 0x7F0DAE0: g_main_context_iterate (gmain.c:3808) ==9013== by 0x7F0DF06: g_main_loop_run (gmain.c:4002) ==9013== by 0x4F803F3: wait_for_account_settings_ready (goatelepathyprovider.c:102) ==9013== by 0x4F8127F: edit_connection_parameters (goatelepathyprovider.c:534) ==9013== by 0x4F81F16: edit_parameters_clicked_cb (goatelepathyprovider.c:835) ==9013== by 0x7C7727D: g_cclosure_marshal_VOID__VOIDv (gmarshal.c:905) ==9013== by 0x7C744D1: _g_closure_invoke_va (gclosure.c:864) ==9013== by 0x7C8F771: g_signal_emit_valist (gsignal.c:3246) ==9013== by 0x7C908E9: g_signal_emit (gsignal.c:3393) ==9013== by 0x6838A45: gtk_button_clicked (gtkbutton.c:1488) ==9013== by 0x6839966: gtk_button_do_release (gtkbutton.c:1899) ==9013== by 0x6839D45: gtk_real_button_released (gtkbutton.c:2017) ==9013== by 0x7C7727D: g_cclosure_marshal_VOID__VOIDv (gmarshal.c:905) ==9013== by 0x7C7490F: g_type_class_meta_marshalv (gclosure.c:1021) ==9013== by 0x7C744D1: _g_closure_invoke_va (gclosure.c:864) ==9013== by 0x7C8F771: g_signal_emit_valist (gsignal.c:3246) ==9013== by 0x7C908E9: g_signal_emit (gsignal.c:3393) ==9013== by 0x68364F5: multipress_released_cb (gtkbutton.c:613) ==9013== by 0x36E5A05DAF: ffi_call_unix64 (unix64.S:76) ==9013== by 0x36E5A05817: ffi_call (ffi64.c:525) ==9013== by 0x7C75F7C: g_cclosure_marshal_generic_va (gclosure.c:1594) ==9013== by 0x7C744D1: _g_closure_invoke_va (gclosure.c:864) ==9013== by 0x7C8F771: g_signal_emit_valist (gsignal.c:3246) ==9013== by 0x7C908E9: g_signal_emit (gsignal.c:3393) ==9013== by 0x69303DB: gtk_gesture_multi_press_end (gtkgesturemultipress.c:273) ==9013== by 0x7C78B90: g_cclosure_marshal_VOID__BOXEDv (gmarshal.c:1950) ==9013== by 0x7C7490F: g_type_class_meta_marshalv (gclosure.c:1021) ==9013== by 0x7C744D1: _g_closure_invoke_va (gclosure.c:864) https://bugzilla.gnome.org/show_bug.cgi?id=752938
Diffstat (limited to 'tp-account-widgets')
-rw-r--r--tp-account-widgets/tpaw-connection-managers.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tp-account-widgets/tpaw-connection-managers.c b/tp-account-widgets/tpaw-connection-managers.c
index 73a3b452..f72c1081 100644
--- a/tp-account-widgets/tpaw-connection-managers.c
+++ b/tp-account-widgets/tpaw-connection-managers.c
@@ -223,7 +223,7 @@ tpaw_connection_managers_listed_cb (GObject *source,
self->priv->cms = g_list_prepend (self->priv->cms,
g_object_ref (cm));
}
- g_list_free (cms);
+ g_list_free_full (cms, g_object_unref);
out:
if (!self->priv->ready)