diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2024-04-19 14:06:05 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2024-04-19 14:06:05 +0100 |
commit | 6cf9ca1f978c3da18917e745268e5f01091ac55b (patch) | |
tree | e84711bc0ccbe8516d1c0887279ca56aacd77e62 /src/libstat | |
parent | 748f80fdfe4076488442aecf418fa8ac30bce72e (diff) | |
download | rspamd-6cf9ca1f978c3da18917e745268e5f01091ac55b.tar.gz rspamd-6cf9ca1f978c3da18917e745268e5f01091ac55b.zip |
[Fix] If we have one statfile disabled we need to disable all
Diffstat (limited to 'src/libstat')
-rw-r--r-- | src/libstat/stat_process.c | 12 |
1 files changed, 12 insertions, 0 deletions
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; } |