[evolution-data-server] Bug 627609 - imapx user_flags memory leak in imapx_untagged()
- From: Chenthill Palanisamy <pchen src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug 627609 - imapx user_flags memory leak in imapx_untagged()
- Date: Mon, 30 Aug 2010 12:16:22 +0000 (UTC)
commit 00e24150751ae15fa9ad13631ac02eaa0126712e
Author: Chenthill Palanisamy <pchenthill novell com>
Date: Mon Aug 30 17:42:59 2010 +0530
Bug 627609 - imapx user_flags memory leak in imapx_untagged()
camel/providers/imapx/camel-imapx-server.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 4408e09..6b606bb 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -1456,6 +1456,7 @@ imapx_untagged(CamelIMAPXServer *imap, GError **error)
guint32 server_flags;
CamelFlag *server_user_flags;
CamelMessageInfoBase *binfo;
+ gboolean free_user_flags = FALSE;
mi->uid = camel_pstring_strdup (finfo->uid);
@@ -1494,6 +1495,7 @@ imapx_untagged(CamelIMAPXServer *imap, GError **error)
server_user_flags = finfo->user_flags;
/* free user_flags ? */
finfo->user_flags = NULL;
+ free_user_flags = TRUE;
}
/* If the message is a really new one -- equal or higher than what
@@ -1533,6 +1535,10 @@ imapx_untagged(CamelIMAPXServer *imap, GError **error)
camel_operation_progress (job->op, cnt?cnt:1);
}
}
+
+ if (free_user_flags && server_user_flags)
+ camel_flag_list_free (&server_user_flags);
+
}
}
}
@@ -3546,6 +3552,7 @@ cleanup:
for (i=0;i<infos->len;i++) {
struct _refresh_info *r = &g_array_index(infos, struct _refresh_info, i);
+ camel_flag_list_free (&r->server_user_flags);
g_free(r->uid);
}
g_array_free(job->u.refresh_info.infos, TRUE);
@@ -3730,6 +3737,7 @@ imapx_job_scan_changes_done(CamelIMAPXServer *is, CamelIMAPXCommand *ic)
for (i=0;i<infos->len;i++) {
struct _refresh_info *r = &g_array_index(infos, struct _refresh_info, i);
+ camel_flag_list_free (&r->server_user_flags);
g_free(r->uid);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]