From: Vsevolod Stakhov Date: Tue, 3 May 2016 15:51:09 +0000 (+0100) Subject: [CritFix] Really skip filters in case of pre-result set X-Git-Tag: 1.3.0~563 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a65d9460ee4bbeefc097268feb65c29a2d97d911;p=thirdparty%2Frspamd.git [CritFix] Really skip filters in case of pre-result set --- diff --git a/src/libserver/task.c b/src/libserver/task.c index af7495b237..890e05f207 100644 --- a/src/libserver/task.c +++ b/src/libserver/task.c @@ -435,6 +435,14 @@ rspamd_task_process (struct rspamd_task *task, guint stages) return TRUE; } + if (task->pre_result.action != METRIC_ACTION_MAX) { + /* Skip all if we have result here */ + task->processed_stages |= RSPAMD_TASK_STAGE_DONE; + msg_info_task ("skip filters, as pre-filter returned %s action", + rspamd_action_to_str (task->pre_result.action)); + } + + task->flags |= RSPAMD_TASK_FLAG_PROCESSING; st = rspamd_task_select_processing_stage (task, stages); @@ -448,13 +456,6 @@ rspamd_task_process (struct rspamd_task *task, guint stages) case RSPAMD_TASK_STAGE_PRE_FILTERS: rspamd_lua_call_pre_filters (task); - - if (task->pre_result.action != METRIC_ACTION_MAX) { - /* Skip all if we have result here */ - task->processed_stages |= RSPAMD_TASK_STAGE_DONE; - msg_info_task ("skip filters, as pre-filter returned %s action", - rspamd_action_to_str (task->pre_result.action)); - } break; case RSPAMD_TASK_STAGE_FILTERS: