[evolution] Bug #673525 - Crash under efh_write_message()



commit 2f530637b15a2a07bd1df1aabef91ffc4f26ddee
Author: Dan VrÃtil <dvratil redhat com>
Date:   Fri Apr 13 11:53:21 2012 +0200

    Bug #673525 - Crash under efh_write_message()
    
    Make sure the EMFormat* lives until EMailRequest is finished.

 mail/e-mail-request.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/mail/e-mail-request.c b/mail/e-mail-request.c
index d440e67..49c5b5a 100644
--- a/mail/e-mail-request.c
+++ b/mail/e-mail-request.c
@@ -581,6 +581,11 @@ mail_request_finalize (GObject *object)
 		request->priv->ret_mime_type = NULL;
 	}
 
+	if (request->priv->efh) {
+		g_object_unref (request->priv->efh);
+		request->priv->efh = NULL;
+	}
+
 	G_OBJECT_CLASS (e_mail_request_parent_class)->finalize (object);
 }
 
@@ -647,6 +652,9 @@ mail_request_send_async (SoupRequest *request,
 
 		g_return_if_fail (emr->priv->efh);
 
+		/* Make sure the formatter lives until we are finished here */
+		g_object_ref (emr->priv->efh);
+
 		result = g_simple_async_result_new (G_OBJECT (request), callback,
 				user_data, mail_request_send_async);
 		g_simple_async_result_run_in_thread (result, handle_mail_request,
@@ -674,6 +682,9 @@ mail_request_send_async (SoupRequest *request,
 
 		g_return_if_fail (emr->priv->efh);
 
+		/* Make sure the formatter lives until we are finished here */
+		g_object_ref (emr->priv->efh);
+
 		result = g_simple_async_result_new (G_OBJECT (request), callback,
 				user_data, mail_request_send_async);
 		g_simple_async_result_run_in_thread (result, handle_http_request,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]