From: Christopher Faulet Date: Thu, 25 Sep 2025 13:21:04 +0000 (+0200) Subject: BUG/MINOR: pattern: Fix pattern lookup for map with opt@ prefix X-Git-Tag: v3.3-dev9~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7aa9f5ec98436182b2b5ebeb57828d2daf27f20a;p=thirdparty%2Fhaproxy.git BUG/MINOR: pattern: Fix pattern lookup for map with opt@ prefix When we look for a map file reference, the file@ prefix is removed because if may be omitted. The same is true with opt@ prefix. However this case was not properly performed in pat_ref_lookup(). Let's do so. This patch must be backported as far as 3.0. --- diff --git a/src/pattern.c b/src/pattern.c index f01e693a5..0c662a989 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -1537,9 +1537,11 @@ struct pat_ref *pat_ref_lookup(const char *reference) { struct pat_ref *ref; - /* Skip file@ prefix, it is the default case. Can be mixed with ref omitting the prefix */ + /* Skip file@ or opt@ prefix, it is the default case. Can be mixed with ref omitting the prefix */ if (strlen(reference) > 5 && strncmp(reference, "file@", 5) == 0) reference += 5; + else if (strlen(reference) > 4 && strncmp(reference, "opt@", 4) == 0) + reference += 4; list_for_each_entry(ref, &pattern_reference, list) if (ref->reference && strcmp(reference, ref->reference) == 0)