From ec79e62d981c5cefd36d4d40693b25117d236365 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 13 Mar 2014 17:44:36 +0100 Subject: [PATCH] Bug #726225 - [abrt] Memory corruption during message list regen after Trash expunge --- mail/message-list.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mail/message-list.c b/mail/message-list.c index d582c326f2..3b669b6b4d 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -5403,9 +5403,13 @@ message_list_regen_thread (GSimpleAsyncResult *simple, thread_tree = message_list_ref_thread_tree (message_list); - if (thread_tree != NULL) + if (thread_tree != NULL) { + /* Make sure multiple threads will not access the same + CamelFolderThread structure at the same time */ + g_mutex_lock (&message_list->priv->thread_tree_lock); camel_folder_thread_messages_apply (thread_tree, uids); - else + g_mutex_unlock (&message_list->priv->thread_tree_lock); + } else thread_tree = camel_folder_thread_messages_new ( folder, uids, regen_data->thread_subject);