From: Christopher Faulet Date: Fri, 23 Mar 2018 13:37:14 +0000 (+0100) Subject: BUG/MINOR: spoe: Initialize variables used during conf parsing before any check X-Git-Tag: v1.9-dev1~322 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84c844eb12b250aa86f2aadaff77c42dfc3cb619;p=thirdparty%2Fhaproxy.git BUG/MINOR: spoe: Initialize variables used during conf parsing before any check Some initializations must be done at the beginning of parse_spoe_flt to avoid segmentaion fault when first errors are catched, when the "filter spoe" line is parsed. This patch must be backported in 1.8. [cf: the variable "curvars" doesn't exist in 1.8. So the patch must be adapted.] --- diff --git a/src/flt_spoe.c b/src/flt_spoe.c index a701c70745..9d5b3b88a5 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -3797,6 +3797,12 @@ parse_spoe_flt(char **args, int *cur_arg, struct proxy *px, char *file = NULL, *engine = NULL; int ret, pos = *cur_arg + 1; + LIST_INIT(&curmsgs); + LIST_INIT(&curgrps); + LIST_INIT(&curmphs); + LIST_INIT(&curgphs); + LIST_INIT(&curvars); + conf = calloc(1, sizeof(*conf)); if (conf == NULL) { memprintf(err, "%s: out of memory", args[*cur_arg]); @@ -3845,11 +3851,6 @@ parse_spoe_flt(char **args, int *cur_arg, struct proxy *px, curproxy = px; curagent = NULL; curmsg = NULL; - LIST_INIT(&curmsgs); - LIST_INIT(&curgrps); - LIST_INIT(&curmphs); - LIST_INIT(&curgphs); - LIST_INIT(&curvars); ret = readcfgfile(file); curproxy = NULL;