From: Aurelien DARRAGON Date: Thu, 7 Aug 2025 10:45:58 +0000 (+0200) Subject: BUG/MINOR: cfgparse-listen: update err_code for fatal error on proxy directive X-Git-Tag: v3.3-dev7~60 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=833158f9e0f4dad3502a7b7d7fbadb97e5a6c6dc;p=thirdparty%2Fhaproxy.git BUG/MINOR: cfgparse-listen: update err_code for fatal error on proxy directive When improper arguments are provided on proxy directive (listen, frontend or backend), such alert may be emitted: "please use the 'bind' keyword for listening addresses" This was introduced in 6e62fb6405 ("MEDIUM: cfgparse: check section maximum number of arguments"). However, despite the error being reported as alert, the err_code isn't updated accordingly, which could make the upper parser think there was no error, while it isn't the case. In practise since the proxy directive is ignored following proxy related directives should raise errors, so this didn't cause much harm, yet better fix that. It could be backported to all stable versions. --- diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c index bcc36c938..07bb05012 100644 --- a/src/cfgparse-listen.c +++ b/src/cfgparse-listen.c @@ -367,8 +367,10 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) if ((*args[2] && (!*args[3] || strcmp(args[2], "from") != 0)) || alertif_too_many_args(3, file, linenum, args, &err_code)) { - if (rc & PR_CAP_FE) + if (rc & PR_CAP_FE) { + err_code |= ERR_ALERT | ERR_FATAL; ha_alert("parsing [%s:%d] : please use the 'bind' keyword for listening addresses.\n", file, linenum); + } goto out; } }