]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Use correct html_features field to fix compilation error
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 5 Oct 2025 16:43:36 +0000 (17:43 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 5 Oct 2025 16:43:36 +0000 (17:43 +0100)
The part->html->features path was incorrect since part->html is void*.
Use the correct part->html_features field which is populated by
rspamd_html_get_features() during message parsing. Also added NULL check
for html_features before accessing its fields.

src/plugins/fuzzy_check.c

index 5c14f51711e25b615d3a6300511bddcbba18d8bd..467fb8de381b9e10e9b296eebe2304cf1debc90e 100644 (file)
@@ -2266,10 +2266,16 @@ fuzzy_cmd_from_html_part(struct rspamd_task *task,
                return NULL;
        }
 
+       /* Check if HTML features are available */
+       if (!part->html_features) {
+               msg_debug_fuzzy_check("HTML part has no features available");
+               return NULL;
+       }
+
        /* Check minimum tags threshold */
-       if (part->html->features.tags_count < rule->min_html_tags) {
+       if (part->html_features->tags_count < rule->min_html_tags) {
                msg_debug_fuzzy_check("HTML part has %d tags, less than minimum %d",
-                                                         part->html->features.tags_count, rule->min_html_tags);
+                                                         part->html_features->tags_count, rule->min_html_tags);
                return NULL;
        }
 
@@ -2278,14 +2284,14 @@ fuzzy_cmd_from_html_part(struct rspamd_task *task,
         * - Require at least 2 links (single-link emails too generic)
         * - Require at least some DOM depth (flat structure too common)
         */
-       if (part->html->features.links.total_links < 2) {
+       if (part->html_features->links.total_links < 2) {
                msg_debug_fuzzy_check("HTML part has only %d links, too few for reliable matching",
-                                                         part->html->features.links.total_links);
+                                                         part->html_features->links.total_links);
                return NULL;
        }
-       if (part->html->features.max_dom_depth < 3) {
+       if (part->html_features->max_dom_depth < 3) {
                msg_debug_fuzzy_check("HTML part has depth %d, too shallow for reliable matching",
-                                                         part->html->features.max_dom_depth);
+                                                         part->html_features->max_dom_depth);
                return NULL;
        }