]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Add missing destructor for exceptions list in injected text parts
authorVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 25 Nov 2025 09:06:20 +0000 (09:06 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 25 Nov 2025 09:06:20 +0000 (09:06 +0000)
The rspamd_message_process_injected_text_part function was missing the
destructor registration for text_part->exceptions GList, causing memory
leaks when processing injected parts via lua_task_inject_part.

src/libmime/message.c

index 0410a50706ad4530b5ed64a4276e763e9118da8a..3d9e0d0849b264acfc6491a2019e15d6248e1b7d 100644 (file)
@@ -1131,6 +1131,15 @@ void rspamd_message_process_injected_text_part(struct rspamd_task *task,
        rspamd_url_text_extract(task->task_pool, task, text_part, cur_url_order,
                                                        RSPAMD_URL_FIND_ALL);
 
+       /* Add destructor for exceptions list (created by normalize and URL extraction) */
+       if (text_part->exceptions) {
+               text_part->exceptions = g_list_sort(text_part->exceptions,
+                                                                                       exceptions_compare_func);
+               rspamd_mempool_add_destructor(task->task_pool,
+                                                                         (rspamd_mempool_destruct_t) g_list_free,
+                                                                         text_part->exceptions);
+       }
+
        /* Create words for Bayes/stats */
        rspamd_mime_part_create_words(task, text_part);
 }