From: Vsevolod Stakhov Date: Thu, 5 Nov 2020 12:56:21 +0000 (+0000) Subject: [Fix] Composites: Allow partial match X-Git-Tag: 2.7~170 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7c63add10c03134013fc186a5ac49cdb2d22eca2;p=thirdparty%2Frspamd.git [Fix] Composites: Allow partial match --- diff --git a/src/libserver/composites.c b/src/libserver/composites.c index f3c25d1bc1..3ec7704394 100644 --- a/src/libserver/composites.c +++ b/src/libserver/composites.c @@ -449,8 +449,8 @@ rspamd_composite_process_single_symbol (struct composites_data *cd, } } else { - if (rspamd_regexp_match (cur_opt->data.re, - opt->option, opt->optlen, FALSE)) { + if (rspamd_regexp_search (cur_opt->data.re, + opt->option, opt->optlen, NULL, NULL, FALSE, NULL)) { found = true; break; diff --git a/test/functional/cases/109_composites.robot b/test/functional/cases/109_composites.robot index 4fb3aee3dd..ef154603a5 100644 --- a/test/functional/cases/109_composites.robot +++ b/test/functional/cases/109_composites.robot @@ -70,3 +70,9 @@ Composites - Opts RE Hit 2 Expect Symbol With Score SYMOPTS3 6.00 Do Not Expect Symbol SYMOPTS2 Do Not Expect Symbol SYMOPTS1 + +Composites - Opts RE Hit 3 + Scan File ${MESSAGE} opts=example.com->app.link + Expect Symbol With Score SYMOPTS4 6.00 + Do Not Expect Symbol SYMOPTS2 + Do Not Expect Symbol SYMOPTS1 \ No newline at end of file diff --git a/test/functional/configs/composites.conf b/test/functional/configs/composites.conf index d57e09818d..71e453deff 100644 --- a/test/functional/configs/composites.conf +++ b/test/functional/configs/composites.conf @@ -80,4 +80,8 @@ composites { expression = 'OPTS[sym2,/FoO\\//i]'; score = 6.0; } + SYMOPTS4 { + expression = 'POSITIVE_A & OPTS[/>app.link$/i] & EXPRESSIONS'; + score = 6.0; + } }