[telepathy-account-widgets] Properly fix tp_list_connection_managers_finish() leak
- From: Christophe Fergeau <teuf src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [telepathy-account-widgets] Properly fix tp_list_connection_managers_finish() leak
- Date: Fri, 31 Jul 2015 19:01:01 +0000 (UTC)
commit a46f4319089a27b5948a8941201a2de3d442e487
Author: Christophe Fergeau <cfergeau redhat com>
Date: Wed Jul 29 09:59:21 2015 +0200
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
tp-account-widgets/tpaw-connection-managers.c | 2 +-
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 73a3b45..f72c108 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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]