memcpy (old_charset, new_charset, sizeof (*old_charset));
}
-GString *
+gchar *
rspamd_mime_header_decode (rspamd_mempool_t *pool, const gchar *in,
gsize inlen)
{
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);
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;
}
* @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_ */