]> source.dussan.org Git - 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)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 12 Nov 2017 23:15:33 +0000 (23:15 +0000)
MFH: rspamd-1.6

src/libmime/content_type.c

index f115bcb313b5d43c72d52a1a106e1f8f7a4b5181..946a9b838b89ebb559aae078bb67ed9c86b90665 100644 (file)
@@ -470,6 +470,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));
@@ -507,11 +509,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",