[evolution-data-server/evolution-data-server-3-12] Bug 731560 - Crash under imapx_call_idle() after folder rename



commit 6cac5a9da72ded797b8c31402ab1316ac67b6736
Author: Milan Crha <mcrha redhat com>
Date:   Tue Jun 17 16:00:10 2014 +0200

    Bug 731560 - Crash under imapx_call_idle() after folder rename

 camel/providers/imapx/camel-imapx-server.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index bc7ce28..b30c19e 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -3691,18 +3691,18 @@ imapx_call_idle (gpointer data)
                goto exit;
 
        folder = imapx_server_ref_folder (is, mailbox);
+       if (folder == NULL)
+               goto exit;
+
        cancellable = g_weak_ref_get (&is->priv->parser_cancellable);
 
        /* We block here until the IDLE command completes. */
        camel_imapx_server_idle (is, mailbox, cancellable, &local_error);
 
        if (local_error == NULL) {
-               CamelFolder *folder;
                gboolean have_new_messages;
                gboolean fetch_new_messages;
 
-               folder = imapx_server_ref_folder (is, mailbox);
-
                have_new_messages =
                        camel_imapx_mailbox_get_messages (mailbox) >
                        camel_folder_summary_count (folder->summary);
@@ -3715,8 +3715,6 @@ imapx_call_idle (gpointer data)
                        imapx_server_fetch_new_messages (
                                is, mailbox, TRUE, TRUE,
                                cancellable, &local_error);
-
-               g_clear_object (&folder);
        }
 
        /* XXX Need a better way to propagate IDLE errors. */
@@ -3731,6 +3729,7 @@ imapx_call_idle (gpointer data)
        g_clear_object (&cancellable);
 
 exit:
+       g_clear_object (&mailbox);
        g_clear_object (&is);
 
        return G_SOURCE_REMOVE;


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