]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: pattern: Properly flag virtual maps as using samples
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 25 Sep 2025 08:03:41 +0000 (10:03 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 25 Sep 2025 08:16:53 +0000 (10:16 +0200)
commit3be8b06a60a37756a2c596f36727268cbfc4edf9
treed0f765089299863b3479eef2747218db42f37ab5
parent23e5d272af1b3125338c7ff45d0941d716f13a55
BUG/MINOR: pattern: Properly flag virtual maps as using samples

When a map file is load, internally, the pattern reference is flagged as
based on a sample. However it is not performed for virtual maps. This flag
is only used during startup to check the map compatibility when it used at
different places. At runtime this does not change anything. But errors can
be triggered during configuration parsing. For instance, the following valid
config will trigger an error:

    http-request set-map(virt@test) foo bar if !{ str(foo),map(virt@test) -m found }
    http-request set-var(txn.foo) str(foo),map(virt@test)

The fix is quite obvious. PAT_REF_SMP flag must be set for virtual map as
any other map.

A workaround is to use optional map (opt@...) by checking the map id cannot
reference an existing file.

This patch must be backported as far as 3.0.
src/pattern.c