[evolution-ews/gnome-3-16] Fix various memory leaks



commit 8ebe8512438836c05e73c6214dfb97780b933f93
Author: Milan Crha <mcrha redhat com>
Date:   Tue Apr 21 21:05:55 2015 +0200

    Fix various memory leaks

 src/server/e-ews-connection.c |    5 +++++
 src/server/e-ews-item.c       |    2 ++
 src/server/e-soap-message.c   |    4 +++-
 3 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/src/server/e-ews-connection.c b/src/server/e-ews-connection.c
index a22d90f..f07a58d 100644
--- a/src/server/e-ews-connection.c
+++ b/src/server/e-ews-connection.c
@@ -537,6 +537,7 @@ ews_connection_schedule_queue_message (EEwsConnection *cnc,
        g_source_set_priority (source, G_PRIORITY_DEFAULT);
        g_source_set_callback (source, ews_connection_scheduled_cb, sd, NULL);
        g_source_attach (source, cnc->priv->soup_context);
+       g_source_unref (source);
 }
 
 static void
@@ -558,6 +559,7 @@ ews_connection_schedule_cancel_message (EEwsConnection *cnc,
        g_source_set_priority (source, G_PRIORITY_DEFAULT);
        g_source_set_callback (source, ews_connection_scheduled_cb, sd, NULL);
        g_source_attach (source, cnc->priv->soup_context);
+       g_source_unref (source);
 }
 
 static void
@@ -576,6 +578,7 @@ ews_connection_schedule_abort (EEwsConnection *cnc)
        g_source_set_priority (source, G_PRIORITY_DEFAULT);
        g_source_set_callback (source, ews_connection_scheduled_cb, sd, NULL);
        g_source_attach (source, cnc->priv->soup_context);
+       g_source_unref (source);
 }
 
 static void ews_cancel_request (GCancellable *cancellable, gpointer user_data);
@@ -657,6 +660,7 @@ ews_trigger_next_request (EEwsConnection *cnc)
                g_source_set_priority (source, G_PRIORITY_DEFAULT);
                g_source_set_callback (source, ews_next_request, cnc, NULL);
                g_source_attach (source, cnc->priv->soup_context);
+               g_source_unref (source);
        } else {
                ews_next_request (cnc);
        }
@@ -7038,6 +7042,7 @@ ews_handle_attachments_param (ESoapParameter *param,
                if (!g_ascii_strcasecmp (name, "ItemAttachment")) {
                        item = e_ews_item_new_from_soap_parameter (subparam);
                        info = e_ews_item_dump_mime_content (item, async_data->directory);
+                       g_clear_object (&item);
 
                } else if (!g_ascii_strcasecmp (name, "FileAttachment")) {
                        info = e_ews_dump_file_attachment_from_soap_parameter (
diff --git a/src/server/e-ews-item.c b/src/server/e-ews-item.c
index ab859ee..8cd137a 100644
--- a/src/server/e-ews-item.c
+++ b/src/server/e-ews-item.c
@@ -492,6 +492,7 @@ parse_extended_property (EEwsItemPrivate *priv,
                        if (!set_hash) {
                                set_hash = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, 
g_free);
                                g_hash_table_insert (priv->mapi_extended_sets, setid, set_hash);
+                               setid = NULL;
                        }
 
                        g_hash_table_insert (set_hash, GUINT_TO_POINTER (tag), g_strdup (value));
@@ -500,6 +501,7 @@ parse_extended_property (EEwsItemPrivate *priv,
                g_hash_table_insert (priv->mapi_extended_tags, GUINT_TO_POINTER (tag), g_strdup (value));
        }
 
+       g_free (setid);
        g_free (value);
        g_free (name);
 }
diff --git a/src/server/e-soap-message.c b/src/server/e-soap-message.c
index a39af90..3cb347a 100644
--- a/src/server/e-soap-message.c
+++ b/src/server/e-soap-message.c
@@ -1091,7 +1091,9 @@ e_soap_message_persist (ESoapMessage *msg)
        soup_message_set_request (
                SOUP_MESSAGE (msg),
                "text/xml; charset=utf-8",
-               SOUP_MEMORY_TAKE, (gchar *) body, len);
+               SOUP_MEMORY_COPY, (gchar *) body, len);
+
+       xmlFree (body);
 }
 
 /**


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