From d9d76b801cb8578867785054adf4234d808fcca2 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sat, 18 Nov 2017 22:03:54 +0000 Subject: [PATCH] [Fix] Allow to have negative actions limits --- lualib/rspamd_config_transform.lua | 18 ++++++++++++++++++ src/libmime/filter.c | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lualib/rspamd_config_transform.lua b/lualib/rspamd_config_transform.lua index bca42691a..4f656ca9c 100644 --- a/lualib/rspamd_config_transform.lua +++ b/lualib/rspamd_config_transform.lua @@ -251,6 +251,24 @@ return function(cfg) logger.errx('no actions defined') end + -- Perform sanity check for actions + local actions_defs = {'greylist', 'add header', 'add_header', + 'rewrite subject', 'rewrite_subject', 'reject'} + + if not cfg.actions['no action'] and not cfg.actions['no_action'] and + not cfg.actions['accept'] then + for _,d in ipairs(actions_defs) do + if cfg.actions[d] then + if cfg.actions[d] < 0 then + cfg.actions['no action'] = cfg.actions[d] - 0.001 + logger.infox('set no action score to: %s, as action %s has negative score', + cfg.actions['no action'], d) + break + end + end + end + end + if not cfg.group then logger.errx('no symbol groups defined') else diff --git a/src/libmime/filter.c b/src/libmime/filter.c index ecbfd24db..fbd6d9f97 100644 --- a/src/libmime/filter.c +++ b/src/libmime/filter.c @@ -351,7 +351,7 @@ enum rspamd_action_type rspamd_check_action_metric (struct rspamd_task *task, struct rspamd_metric_result *mres) { struct rspamd_action *action, *selected_action = NULL; - double max_score = 0, sc; + double max_score = -(G_MAXDOUBLE), sc; int i; if (task->pre_result.action == METRIC_ACTION_MAX) { -- 2.39.5