summaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-19 18:08:19 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-19 18:08:19 +0000
commitbeb98631d782d976c952182c398033db5f6a8c04 (patch)
tree5bbcdbd3b1c9258efeb8c60e6f21fb02b3eb7ae3 /src/libmime
parent287256b3f36cf0c19b8223eaf10eb5e0ae24501c (diff)
downloadrspamd-beb98631d782d976c952182c398033db5f6a8c04.tar.gz
rspamd-beb98631d782d976c952182c398033db5f6a8c04.zip
[Minor] Add cleanup
Diffstat (limited to 'src/libmime')
-rw-r--r--src/libmime/mime_headers.c12
-rw-r--r--src/libmime/mime_headers.h2
2 files changed, 10 insertions, 4 deletions
diff --git a/src/libmime/mime_headers.c b/src/libmime/mime_headers.c
index 9d36abf88..9503862ce 100644
--- a/src/libmime/mime_headers.c
+++ b/src/libmime/mime_headers.c
@@ -341,7 +341,7 @@ rspamd_mime_header_maybe_save_token (rspamd_mempool_t *pool, GString *out,
memcpy (old_charset, new_charset, sizeof (*old_charset));
}
-GString *
+gchar *
rspamd_mime_header_decode (rspamd_mempool_t *pool, const gchar *in,
gsize inlen)
{
@@ -365,7 +365,9 @@ rspamd_mime_header_decode (rspamd_mempool_t *pool, const gchar *in,
c = in;
p = in;
end = in + inlen;
- out = g_string_sized_new (inlen);
+ out = rspamd_mempool_alloc0 (pool, sizeof (*out));
+ g_string_set_size (out, inlen);
+ out->len = 0;
token = g_byte_array_sized_new (80);
decoded = g_byte_array_sized_new (122);
@@ -501,5 +503,9 @@ rspamd_mime_header_decode (rspamd_mempool_t *pool, const gchar *in,
break;
}
- return out;
+ g_byte_array_free (token, TRUE);
+ g_byte_array_free (decoded, TRUE);
+ rspamd_mempool_add_destructor (pool, g_free, out->str);
+
+ return out->str;
}
diff --git a/src/libmime/mime_headers.h b/src/libmime/mime_headers.h
index b1a048fd8..4d2597c84 100644
--- a/src/libmime/mime_headers.h
+++ b/src/libmime/mime_headers.h
@@ -55,7 +55,7 @@ void rspamd_mime_headers_process (struct rspamd_task *task, GHashTable *target,
* @param inlen
* @return
*/
-GString * rspamd_mime_header_decode (rspamd_mempool_t *pool, const gchar *in,
+gchar * rspamd_mime_header_decode (rspamd_mempool_t *pool, const gchar *in,
gsize inlen);
#endif /* SRC_LIBMIME_MIME_HEADERS_H_ */