aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libmime/message.c2
-rw-r--r--src/libserver/task.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c
index e8b8f0bab..b259fdb0c 100644
--- a/src/libmime/message.c
+++ b/src/libmime/message.c
@@ -914,6 +914,7 @@ mime_foreach_callback (GMimeObject * part, gpointer user_data)
rspamd_mime_headers_process (task, mime_part->raw_headers,
hdrs, strlen (hdrs), FALSE);
mime_part->raw_headers_str = hdrs;
+ rspamd_mempool_add_destructor (task->task_pool, g_free, hdrs);
}
mime_part->type = type;
@@ -983,6 +984,7 @@ mime_foreach_callback (GMimeObject * part, gpointer user_data)
rspamd_mime_headers_process (task, mime_part->raw_headers,
hdrs, strlen (hdrs), FALSE);
mime_part->raw_headers_str = hdrs;
+ rspamd_mempool_add_destructor (task->task_pool, g_free, hdrs);
}
mime_part->type = type;
diff --git a/src/libserver/task.c b/src/libserver/task.c
index 5ef1fedb6..bcf66aee8 100644
--- a/src/libserver/task.c
+++ b/src/libserver/task.c
@@ -199,10 +199,9 @@ rspamd_task_free (struct rspamd_task *task)
for (i = 0; i < task->parts->len; i ++) {
p = g_ptr_array_index (task->parts, i);
- g_byte_array_free (p->content, TRUE);
- if (p->raw_headers_str) {
- g_free (p->raw_headers_str);
+ if (p->content) {
+ g_byte_array_free (p->content, TRUE);
}
if (p->raw_headers) {