]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Multimap: deal with symbols with leading numerals 5680/head
authorAndrew Lewis <nerf@judo.za.org>
Tue, 14 Oct 2025 10:54:31 +0000 (12:54 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Tue, 14 Oct 2025 10:54:31 +0000 (12:54 +0200)
src/plugins/lua/multimap.lua

index 21f4e3e67bf59f8b3be03545d52c8a25bf87830d..1b186ef7f9f776b4114a0809092eb9ca41c9e7a8 100644 (file)
@@ -72,7 +72,7 @@ local function parse_multimap_value(parse_rule, p_ret)
             (number.fractional ^ -1)) +      -- Fractional
           (lpeg.S("+-") * number.fractional) -- Completely fractional number
 
-      local sym_start = lpeg.R("az", "AZ") + lpeg.S("_")
+      local sym_start = lpeg.R("az", "AZ", "09") + lpeg.S("_")
       local sym_elt = sym_start + lpeg.R("09")
       local symbol = sym_start * sym_elt ^ 0
       local symbol_cap = lpeg.Cg(symbol, 'symbol')
@@ -80,7 +80,7 @@ local function parse_multimap_value(parse_rule, p_ret)
       local opts_cap = lpeg.Cg(lpeg.Ct(lpeg.C(symbol) * (lpeg.P(",") * lpeg.C(symbol)) ^ 0), 'opts')
       local symscore_cap = (symbol_cap * lpeg.P(":") * score_cap)
       local symscoreopt_cap = symscore_cap * lpeg.P(":") * opts_cap
-      local grammar = symscoreopt_cap + symscore_cap + symbol_cap + score_cap
+      local grammar = symscoreopt_cap + symscore_cap + score_cap + symbol_cap
       multimap_grammar = lpeg.Ct(grammar)
     end
     local tbl = multimap_grammar:match(p_ret)