From: Willy Tarreau Date: Tue, 10 Sep 2024 06:55:29 +0000 (+0200) Subject: BUG/MINOR: pattern: do not leave a leading comma on "set" error messages X-Git-Tag: v3.1-dev8~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f8d9c9e8bdef8e7b8f7d1d641987b4d0dcae988;p=thirdparty%2Fhaproxy.git BUG/MINOR: pattern: do not leave a leading comma on "set" error messages 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. --- diff --git a/src/pattern.c b/src/pattern.c index 7a2a15accf..6817bf11e9 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -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;