]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Do not classify when a message has not enough tokens
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 Sep 2016 11:31:43 +0000 (12:31 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 12 Sep 2016 11:33:17 +0000 (12:33 +0100)
Issue: #556
MFH: true

src/libstat/stat_process.c

index 00e7ded4c150df6becac22da5c8a45506664b182..efc395ae4d3fc70f5fb1ddc4396958cca7cf4bc8 100644 (file)
@@ -343,6 +343,27 @@ rspamd_stat_classifiers_process (struct rspamd_stat_ctx *st_ctx,
                cl = g_ptr_array_index (st_ctx->classifiers, i);
                g_assert (cl != NULL);
 
+               if (cl->cfg->min_tokens > 0 && task->tokens->len < cl->cfg->min_tokens) {
+                       msg_debug_task (
+                                       "<%s> contains less tokens than required for %s classifier: "
+                                       "%ud < %ud",
+                                       task->message_id,
+                                       cl->cfg->name,
+                                       task->tokens->len,
+                                       cl->cfg->min_tokens);
+                       continue;
+               }
+               else if (cl->cfg->max_tokens > 0 && task->tokens->len > cl->cfg->max_tokens) {
+                       msg_debug_task (
+                                       "<%s> contains more tokens than allowed for %s classifier: "
+                                       "%ud > %ud",
+                                       task->message_id,
+                                       cl->cfg->name,
+                                       task->tokens->len,
+                                       cl->cfg->max_tokens);
+                       continue;
+               }
+
                cl->subrs->classify_func (cl, task->tokens, task);
        }
 }