From a76b5358f0400568b641dc373cbd582875cd6aa6 Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Fri, 7 Mar 2025 09:11:21 +0100 Subject: [PATCH] BUG/MINOR: server: dont return immediately from parse_server() when skipping checks If parse_server() is called under peers section parser, and the address needs to be parsed but it is missing, we directly return from the function However since 0fc136ce5b ("REORG: server: use parsing ctx for server parsing"), parse_server() uses parsing ctx to emit warning/errors, and the ctx must be reset before returning from the function, yet this early return was overlooked. Because of that, any ha_{warning,alert..} message reported after early return from parse_server() could cause messages to have an extra "parsing [file:line]" info. We fix that by ensuring parse_server() doesn't return without resetting the parsing context. It should be backported up to 2.6 --- src/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server.c b/src/server.c index 26ef58f4d..051dd984a 100644 --- a/src/server.c +++ b/src/server.c @@ -3758,7 +3758,7 @@ int parse_server(const char *file, int linenum, char **args, if ((parse_flags & (SRV_PARSE_IN_PEER_SECTION|SRV_PARSE_PARSE_ADDR)) == (SRV_PARSE_IN_PEER_SECTION|SRV_PARSE_PARSE_ADDR)) { if (!*args[2]) - return 0; + goto out; } err_code = _srv_parse_init(&newsrv, args, &cur_arg, curproxy,