[evolution-ews] Fix various memory leaks
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] Fix various memory leaks
- Date: Tue, 21 Apr 2015 19:07:36 +0000 (UTC)
commit 27453a47cdbf76f3e0d26c3a93ad438be5af7261
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 bca1b0c..4e7c3d9 100644
--- a/src/server/e-ews-connection.c
+++ b/src/server/e-ews-connection.c
@@ -535,6 +535,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
@@ -556,6 +557,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
@@ -574,6 +576,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);
@@ -655,6 +658,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);
}
@@ -6978,6 +6982,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]