]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Plug another possible memory leak
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 12 Nov 2017 23:15:33 +0000 (23:15 +0000)
committerAndrew Lewis <nerf@judo.za.org>
Wed, 24 Jan 2018 09:53:32 +0000 (11:53 +0200)
MFH: rspamd-1.6

src/libmime/content_type.c

index 240e2fab503d518644959973f3c4d747c07d60fa..7ba9df690aa94958de04805a86ffe2fa2c760d31 100644 (file)
@@ -461,6 +461,8 @@ rspamd_content_disposition_add_param (rspamd_mempool_t *pool,
        else {
                cd->attrs = g_hash_table_new (rspamd_ftok_icase_hash,
                                rspamd_ftok_icase_equal);
+               rspamd_mempool_add_destructor (pool,
+                               (rspamd_mempool_destruct_t)g_hash_table_unref, cd->attrs);
        }
 
        nparam = rspamd_mempool_alloc (pool, sizeof (*nparam));
@@ -498,11 +500,6 @@ rspamd_content_disposition_parse (const gchar *in,
        if (rspamd_content_disposition_parser (in, len, &val, pool)) {
                res = rspamd_mempool_alloc (pool, sizeof (val));
                memcpy (res, &val, sizeof (val));
-
-               if (res->attrs) {
-                       rspamd_mempool_add_destructor (pool,
-                                       (rspamd_mempool_destruct_t)g_hash_table_unref, res->attrs);
-               }
        }
        else {
                msg_warn_pool ("cannot parse content disposition: %*s",