From: Willy Tarreau Date: Mon, 11 May 2026 07:32:41 +0000 (+0200) Subject: BUG/MINOR: cfgparse-listen: do not emit extraneous line in rule order warnings X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=3df1fbc6b9ed2cfcb272e2c5162e79c0ad0174d9;p=haproxy.git BUG/MINOR: cfgparse-listen: do not emit extraneous line in rule order warnings Some functions such as tcp_parse_tcp_req() are able to emit their own warnings by relying on warnif_misplaced_*() which directly prints the warning. However when doing so they still increment the warning counter which makes cfg_parse_listen() try to emit it, except that what's in the variable is NULL, so we end up with: [WARNING] (260) : config : parsing [/etc/haproxy/haproxy.cfg:17] : (null) Let's just check the errmsg variable before printing the error. If it's NULL, it's because the message was already printed. This can be backported to all branches. --- diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c index 2ef1a1081..38f2bc4d0 100644 --- a/src/cfgparse-listen.c +++ b/src/cfgparse-listen.c @@ -3262,12 +3262,14 @@ stats_error_parsing: /* prepare error message just in case */ rc = kwl->kw[index].parse(args, CFG_LISTEN, curproxy, curr_defproxy, file, linenum, &errmsg); if (rc < 0) { - ha_alert("parsing [%s:%d] : %s\n", file, linenum, errmsg); + if (errmsg) + ha_alert("parsing [%s:%d] : %s\n", file, linenum, errmsg); err_code |= ERR_ALERT | ERR_FATAL; goto out; } else if (rc > 0) { - ha_warning("parsing [%s:%d] : %s\n", file, linenum, errmsg); + if (errmsg) + ha_warning("parsing [%s:%d] : %s\n", file, linenum, errmsg); err_code |= ERR_WARN; goto out; }