/pidgin/main: d9aac4128ad2: mediamanager: fix invalid memory read
Jakub Adam <[email protected]> Sat, 18 Jun 2016 22:10:09 -0400
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: d9aac4128ad2934e70ff7d04a01a1c9cca23d3ca Author: Jakub Adam <[email protected]> Date: 2016-06-10 16:47 +0200 Branch: release-2.x.y URL: https://hg.pidgin.im/pidgin/main/rev/d9aac4128ad2 Description: mediamanager: fix invalid memory read Loop was accessing 'next' pointer in already deallocated GList item. Reported by Valgrind. Backport of Pidgin 3 commit 457ce85caedc. diffstat: libpurple/mediamanager.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diffs (23 lines): diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c --- a/libpurple/mediamanager.c +++ b/libpurple/mediamanager.c @@ -491,14 +491,18 @@ purple_media_manager_remove_media(Purple #ifdef HAVE_MEDIA_APPLICATION g_mutex_lock (&manager->priv->appdata_mutex); - for (list = manager->priv->appdata_info; list; list = list->next) { + list = manager->priv->appdata_info; + while (list) { PurpleMediaAppDataInfo *info = list->data; + GList *next = list->next; if (info->media == media) { manager->priv->appdata_info = g_list_delete_link ( manager->priv->appdata_info, list); free_appdata_info_locked (info); } + + list = next; } g_mutex_unlock (&manager->priv->appdata_mutex); #endif _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits