From: Vsevolod Stakhov Date: Thu, 2 Mar 2017 11:45:25 +0000 (+0000) Subject: [Fix] Fix prefilters action scores X-Git-Tag: 1.5.1~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e85ab6fd9a60926020d04783c31d397209804196;p=thirdparty%2Frspamd.git [Fix] Fix prefilters action scores --- diff --git a/src/libmime/filter.c b/src/libmime/filter.c index cffa9e2155..8b4b305345 100644 --- a/src/libmime/filter.c +++ b/src/libmime/filter.c @@ -357,21 +357,29 @@ rspamd_check_action_metric (struct rspamd_task *task, struct rspamd_metric_resul } else { i = task->pre_result.action; - selected_action = &mres->metric->actions[i]; - sc = mres->actions_limits[i]; - while (isnan (sc)) { - i = (i + 1) % METRIC_ACTION_MAX; + for (i = task->pre_result.action; i < METRIC_ACTION_MAX; i ++) { + selected_action = &mres->metric->actions[i]; sc = mres->actions_limits[i]; - if (i == task->pre_result.action) { - /* No scores defined, just avoid NaN */ - sc = 0; + if (isnan (sc)) { + if (i == task->pre_result.action) { + /* No scores defined, just avoid NaN */ + sc = 0; + break; + } + } + else { break; } } - mres->score = sc; + if (!isnan (sc)) { + mres->score = sc; + } + else { + mres->score = 0; + } } if (selected_action) {