[evolution-data-server] Fix various memory leaks



commit 0f21c29de99eafb9d762fb12d0148628ed45f477
Author: Milan Crha <mcrha redhat com>
Date:   Thu Apr 23 17:42:10 2015 +0200

    Fix various memory leaks

 camel/camel-folder-thread.c                   |    2 ++
 camel/providers/imapx/camel-imapx-server.c    |    1 +
 camel/providers/local/camel-maildir-summary.c |    2 +-
 camel/providers/nntp/camel-nntp-store.c       |    1 +
 4 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/camel/camel-folder-thread.c b/camel/camel-folder-thread.c
index af516e7..6caf946 100644
--- a/camel/camel-folder-thread.c
+++ b/camel/camel-folder-thread.c
@@ -718,6 +718,8 @@ camel_folder_thread_messages_apply (CamelFolderThread *thread,
        thread->node_chunks = camel_memchunk_new (32, sizeof (CamelFolderThreadNode));
        thread_summary (thread, all);
 
+       for (i = 0; i < thread->summary->len; i++)
+               camel_message_info_unref (thread->summary->pdata[i]);
        g_ptr_array_free (thread->summary, TRUE);
        thread->summary = all;
 }
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 278e995..7b54f89 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -8458,6 +8458,7 @@ imapx_server_get_message (CamelIMAPXServer *is,
 
        cache_stream = camel_data_cache_add (message_cache, "tmp", message_uid, error);
        if (cache_stream == NULL) {
+               camel_message_info_unref (mi);
                QUEUE_UNLOCK (is);
                return NULL;
        }
diff --git a/camel/providers/local/camel-maildir-summary.c b/camel/providers/local/camel-maildir-summary.c
index 47bfb81..5491ca4 100644
--- a/camel/providers/local/camel-maildir-summary.c
+++ b/camel/providers/local/camel-maildir-summary.c
@@ -650,8 +650,8 @@ maildir_summary_check (CamelLocalSummary *cls,
 
                info = g_hash_table_lookup (left, uid);
                if (info) {
-                       camel_message_info_unref (info);
                        g_hash_table_remove (left, uid);
+                       camel_message_info_unref (info);
                }
 
                info = camel_folder_summary_get ((CamelFolderSummary *) cls, uid);
diff --git a/camel/providers/nntp/camel-nntp-store.c b/camel/providers/nntp/camel-nntp-store.c
index 86a5772..3b95ca4 100644
--- a/camel/providers/nntp/camel-nntp-store.c
+++ b/camel/providers/nntp/camel-nntp-store.c
@@ -2015,6 +2015,7 @@ ioerror:
 
 exit:
        g_clear_object (&nntp_stream);
+       g_string_free (buffer, TRUE);
 
        return u;
 }


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