mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
BUG/MINOR: cfgparse: detect incorrect overlap of same backend names
As reported below, it's possible to declare a backend then a proxy with the same name, because for the proxy we check a frontend capability (the first one to be tested): backend b listen b bind :8888 Let's check the two capabilities in this case and not just the frontend. Better not backport this, as there's a risk of breakage of existing setups that work by accident. It might make sense to report them as diag warnings though. Link: https://www.mail-archive.com/haproxy@formilux.org/msg45185.html
This commit is contained in:
parent
17e52c922b
commit
c70906c8a1
@ -271,8 +271,15 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm)
|
||||
err_code |= ERR_ALERT | ERR_FATAL;
|
||||
}
|
||||
|
||||
curproxy = (rc & PR_CAP_FE) ? proxy_fe_by_name(args[1]) : proxy_be_by_name(args[1]);
|
||||
curproxy = NULL;
|
||||
if (rc & PR_CAP_FE)
|
||||
curproxy = proxy_fe_by_name(args[1]);
|
||||
|
||||
if (!curproxy && (rc & PR_CAP_BE))
|
||||
curproxy = proxy_be_by_name(args[1]);
|
||||
|
||||
if (curproxy) {
|
||||
/* same capability in common: always forbidden */
|
||||
ha_alert("Parsing [%s:%d]: %s '%s' has the same name as %s '%s' declared at %s:%d.\n",
|
||||
file, linenum, proxy_cap_str(rc), args[1], proxy_type_str(curproxy),
|
||||
curproxy->id, curproxy->conf.file, curproxy->conf.line);
|
||||
|
Loading…
Reference in New Issue
Block a user