commit 1a912d8098d9e2e0fe684afb434f17d005d00ba6
parent e84ba2db17ea9afcb3b14e5a3d5a350e63b5cf2f
Author: Colin Leroy <colin@colino.net>
Date: Thu, 25 Jul 2013 13:33:55 +0200
Fix an use-after-free
Diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/mimeview.c b/src/mimeview.c
@@ -1119,13 +1119,14 @@ static void mimeview_check_data_reset(MimeView *mimeview)
pthread_cancel(mimeview->check_data->cancel_th);
}
- g_free(mimeview->check_data);
- mimeview->check_data = NULL;
-
if (must_free) {
debug_print("freeing deferred mimeinfo\n");
procmime_mimeinfo_free_all(mimeview->check_data->siginfo);
}
+
+ g_free(mimeview->check_data);
+ mimeview->check_data = NULL;
+
if (must_destroy) {
debug_print("freeing deferred mimeview\n");
mimeview_free_mimeinfo(mimeview);
@@ -1134,7 +1135,6 @@ static void mimeview_check_data_reset(MimeView *mimeview)
g_free(mimeview);
mimeviews = g_slist_remove(mimeviews, mimeview);
}
-
}
/* GUI update once the checker thread is done or killed */