BUG/MINOR: config: make the stats socket pass the correct proxy to the parsers

Baptiste reported a segfault when the "id" keyword was passed on the
"stats socket" line. The problem is related to the fact that the stats
parser stats_parse_global() passes curpx instead of global.stats_fe to
the keyword parser. Indeed, curpx being a pointer to the proxy in the
current section, it is not correct here since the global section does
not describe a proxy. It's just by pure luck that only bind_parse_id()
uses the proxy since any other keyword parser could use it as well.

The bug has no impact since the id specified here is not usable at all
and can be discarded from a faulty configuration.

This fix must be backported to 1.5.
This commit is contained in:
Willy Tarreau 2015-10-13 15:06:57 +02:00
parent 26a7aacaff
commit 061b5ded28

View File

@ -330,7 +330,7 @@ static int stats_parse_global(char **args, int section_type, struct proxy *curpx
return -1;
}
if (kw->parse(args, cur_arg, curpx, bind_conf, err) != 0) {
if (kw->parse(args, cur_arg, global.stats_fe, bind_conf, err) != 0) {
if (err && *err)
memprintf(err, "'%s %s' : '%s'", args[0], args[1], *err);
else