]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add cleanup
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 19 Dec 2016 18:08:19 +0000 (18:08 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 19 Dec 2016 18:08:19 +0000 (18:08 +0000)
src/libmime/mime_headers.c
src/libmime/mime_headers.h

index 9d36abf888426b930fc8e52f34bd95611fe3fc6c..9503862ce305bff09c3148a5e9397160eafc2e6d 100644 (file)
@@ -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;
 }
index b1a048fd898d755577673d21e98618371ef7f5e7..4d2597c8465d05db91ebb362683413c3763dfb30 100644 (file)
@@ -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_ */