From: Vsevolod Stakhov Date: Thu, 5 Feb 2026 09:17:47 +0000 (+0000) Subject: [Fix] message: Add NULL check for mp->children in alternative detection X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=305a25d2698b3f28be690daee39aab16463c296e;p=thirdparty%2Frspamd.git [Fix] message: Add NULL check for mp->children in alternative detection The multipart children array can be NULL in some edge cases. Add NULL checks before accessing mp->children->len to prevent segfault in rspamd_mime_part_find_text_in_subtree() and related code paths. --- diff --git a/src/libmime/message.c b/src/libmime/message.c index 3b8db30623..f7ab7a6886 100644 --- a/src/libmime/message.c +++ b/src/libmime/message.c @@ -1033,6 +1033,10 @@ rspamd_mime_part_find_text_in_subtree(struct rspamd_mime_part *root, struct rspamd_mime_multipart *mp = root->specific.mp; + if (!mp->children) { + return NULL; + } + for (unsigned int i = 0; i < mp->children->len; i++) { struct rspamd_mime_part *child = g_ptr_array_index(mp->children, i); @@ -1221,7 +1225,8 @@ rspamd_message_process_text_part_maybe(struct rspamd_task *task, if (mime_part->parent_part) { struct rspamd_mime_part *parent = mime_part->parent_part; - if (IS_PART_MULTIPART(parent) && parent->specific.mp->children->len == 2) { + if (IS_PART_MULTIPART(parent) && parent->specific.mp->children && + parent->specific.mp->children->len == 2) { /* * Use strict extraction mode: we will extract missing urls from * an html part if needed