]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: pattern: Fix pattern lookup for map with opt@ prefix
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 25 Sep 2025 13:21:04 +0000 (15:21 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 25 Sep 2025 13:28:22 +0000 (15:28 +0200)
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.

src/pattern.c

index f01e693a586aa6e79d8537ab6b677ce2dcbcd01e..0c662a9893271d49ebd4710644ee0814cd63d898 100644 (file)
@@ -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)