From: Vsevolod Stakhov Date: Wed, 9 Dec 2015 14:06:37 +0000 (+0000) Subject: Some more fixes to hyperscan match X-Git-Tag: 1.1.0~364 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9283454d84781adfafc40e92a125a883d671c69d;p=thirdparty%2Frspamd.git Some more fixes to hyperscan match --- diff --git a/src/libserver/re_cache.c b/src/libserver/re_cache.c index 44eadd3851..797361a854 100644 --- a/src/libserver/re_cache.c +++ b/src/libserver/re_cache.c @@ -449,8 +449,9 @@ rspamd_re_cache_hyperscan_cb (unsigned int id, rt = cbdata->rt; - if (!isset (rt->checked, id)) { - if (flags & HS_FLAG_PREFILTER) { + + if (flags & HS_FLAG_PREFILTER) { + if (!isset (rt->checked, id)) { /* We need to match the corresponding pcre first */ pcre_elt = g_ptr_array_index (rt->cache->re, id); ret = rspamd_re_cache_process_pcre (rt, @@ -459,13 +460,14 @@ rspamd_re_cache_hyperscan_cb (unsigned int id, to - from, FALSE, TRUE); - } - else { - ret = 1; - } + setbit (rt->checked, id); + rt->results[id] = ret; + } + } + else { setbit (rt->checked, id); - rt->results[id] += ret; + rt->results[id] ++; } return 0;