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.]
This commit is contained in:
Christopher Faulet 2018-03-23 14:37:14 +01:00 committed by Willy Tarreau
parent 5bd37fa625
commit 84c844eb12

View File

@ -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;