talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit e240402b874071ffafe74aaffe60c177cb798567
parent f69b3bab9d66372a56e19867f458c3012aefd141
Author: Colin Leroy <colin@colino.net>
Date:   Mon, 21 Apr 2014 09:59:11 +0200

Fix bug #3146, "Memory corruption when deleting a message from folder"
Reference msginfo before passing to the mark_as_read_timeout deferred
callback.

Diffstat:
Msrc/summaryview.c | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/summaryview.c b/src/summaryview.c @@ -3536,13 +3536,13 @@ static int msginfo_mark_as_read_timeout(void *data) MarkAsReadData *mdata = (MarkAsReadData *)data; if (!mdata) return FALSE; - + if (mdata->msginfo == summary_get_selected_msg(mdata->summaryview)) msginfo_mark_as_read(mdata->summaryview, mdata->msginfo, - mdata->summaryview->selected); + mdata->summaryview->selected); + procmsg_msginfo_free(mdata->msginfo); g_free(mdata); - return FALSE; } @@ -3619,7 +3619,7 @@ static void summary_display_msg_full(SummaryView *summaryview, prefs_common.mark_as_read_delay) { MarkAsReadData *data = g_new0(MarkAsReadData, 1); data->summaryview = summaryview; - data->msginfo = msginfo; + data->msginfo = procmsg_msginfo_new_ref(msginfo); #if GLIB_CHECK_VERSION(2,14,0) g_timeout_add_seconds(prefs_common.mark_as_read_delay, msginfo_mark_as_read_timeout, data);