From: Vsevolod Stakhov Date: Fri, 19 Apr 2024 13:06:05 +0000 (+0100) Subject: [Fix] If we have one statfile disabled we need to disable all X-Git-Tag: 3.9.0~64^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6cf9ca1f978c3da18917e745268e5f01091ac55b;p=rspamd.git [Fix] If we have one statfile disabled we need to disable all --- diff --git a/src/libstat/stat_process.c b/src/libstat/stat_process.c index 7f62d4e2a..33b7053f8 100644 --- a/src/libstat/stat_process.c +++ b/src/libstat/stat_process.c @@ -329,6 +329,18 @@ rspamd_stat_preprocess(struct rspamd_stat_ctx *st_ctx, g_ptr_array_index(task->stat_runtimes, i) = NULL; msg_debug_bayes("symbol %s is disabled, skip classification", st->stcf->symbol); + /* We need to disable the whole classifier for this! */ + struct rspamd_classifier *cl = st->classifier; + for (int j = 0; j < st_ctx->statfiles->len; j++) { + struct rspamd_statfile *nst = g_ptr_array_index(st_ctx->statfiles, j); + + if (st != nst && nst->classifier == cl) { + g_ptr_array_index(task->stat_runtimes, j) = NULL; + msg_debug_bayes("symbol %s is disabled, skip classification for %s as well", + st->stcf->symbol, nst->stcf->symbol); + } + } + continue; }