From 84c844eb12b250aa86f2aadaff77c42dfc3cb619 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 23 Mar 2018 14:37:14 +0100 Subject: [PATCH] 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.] --- src/flt_spoe.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/flt_spoe.c b/src/flt_spoe.c index a701c7074..9d5b3b88a 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;