From 833158f9e0f4dad3502a7b7d7fbadb97e5a6c6dc Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Thu, 7 Aug 2025 12:45:58 +0200 Subject: [PATCH] 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. --- src/cfgparse-listen.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; } }