diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2013-09-11 22:27:04 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2013-09-25 21:21:50 +0800 |
commit | a0602d0d2e8824394ba738a8677909b5c4676d95 (patch) | |
tree | a71d3f8c84c6b75b5eac81b3965b98ee870c3395 | |
parent | ff897a9a71c4eb91548f40ab6ea09e17936cd8c1 (diff) | |
download | gsoc2013-empathy-a0602d0d2e8824394ba738a8677909b5c4676d95.tar gsoc2013-empathy-a0602d0d2e8824394ba738a8677909b5c4676d95.tar.gz gsoc2013-empathy-a0602d0d2e8824394ba738a8677909b5c4676d95.tar.bz2 gsoc2013-empathy-a0602d0d2e8824394ba738a8677909b5c4676d95.tar.lz gsoc2013-empathy-a0602d0d2e8824394ba738a8677909b5c4676d95.tar.xz gsoc2013-empathy-a0602d0d2e8824394ba738a8677909b5c4676d95.tar.zst gsoc2013-empathy-a0602d0d2e8824394ba738a8677909b5c4676d95.zip |
menu_removed_cb: fix 'name' leak
https://bugzilla.gnome.org/show_bug.cgi?id=707885
-rw-r--r-- | src/empathy-roster-window.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/empathy-roster-window.c b/src/empathy-roster-window.c index 9dd7a4e75..667267f51 100644 --- a/src/empathy-roster-window.c +++ b/src/empathy-roster-window.c @@ -1360,16 +1360,22 @@ roster_window_favorite_chatroom_menu_removed_cb ( for (i = 0; i < n; i++) { - const gchar *name; + gchar *name; - if (g_menu_model_get_item_attribute ( - G_MENU_MODEL (self->priv->rooms_section), i, "room-name", - "s", &name) - && !tp_strdiff (name, empathy_chatroom_get_name (chatroom))) + if (!g_menu_model_get_item_attribute ( + G_MENU_MODEL (self->priv->rooms_section), i, + "room-name", "s", &name)) + continue; + + if (tp_strdiff (name, empathy_chatroom_get_name (chatroom))) { - g_menu_remove (self->priv->rooms_section, i); - break; + g_free (name); + continue; } + + g_menu_remove (self->priv->rooms_section, i); + g_free (name); + break; } chatrooms = empathy_chatroom_manager_get_chatrooms ( |