From 061b5ded28eb4e8baea0db4e24d919aaab92ff55 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 13 Oct 2015 15:06:57 +0200 Subject: [PATCH] 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. --- src/dumpstats.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dumpstats.c b/src/dumpstats.c index 169b9acf2..e80e45c91 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -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