]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: pattern: do not leave a leading comma on "set" error messages
authorWilly Tarreau <w@1wt.eu>
Tue, 10 Sep 2024 06:55:29 +0000 (08:55 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 10 Sep 2024 06:55:29 +0000 (08:55 +0200)
Commit 4f2493f355 ("BUG/MINOR: pattern: pat_ref_set: fix UAF reported by
coverity") dropped the condition to concatenate error messages and as
such introduced a leading comma in front of all of them. Then commit
911f4d93d4 ("BUG/MINOR: pattern: pat_ref_set: return 0 if err was found")
changed the behavior to stop at the first error anyway, so all the
mechanics dedicated to the concatenation of error messages is no longer
needed and we can simply return the error as-is, without inserting any
comma.

This should be backported where the patches above are backported.

src/pattern.c

index 7a2a15accff1e1516aa3f60e1578f591b17ce64a..6817bf11e9067090114ada5b62b49a561b464064 100644 (file)
@@ -1776,8 +1776,10 @@ int pat_ref_set(struct pat_ref *ref, const char *key, const char *value, char **
                elt = ebmb_entry(node, struct pat_ref_elt, node);
                node = ebmb_next_dup(node);
                if (!pat_ref_set_elt(ref, elt, value, &tmp_err)) {
-                       memprintf(err, "%s, %s", err && *err ? *err : "", tmp_err);
-                       ha_free(&tmp_err);
+                       if (err)
+                               *err = tmp_err;
+                       else
+                               ha_free(&tmp_err);
                        return 0;
                }
                found = 1;