conf: fix include handling from arrays

Includes from an "include" array were being loaded into the wrong
parent as the logic for array handing in include context was not
updated.

If we are descending into an array in include context, pass through
the current parent so the included configuration is included where it
is expected.

Bug: #6300
pull/9492/head
Jason Ish 2 years ago committed by Victor Julien
parent 904f0ddeee
commit 252e8dbb32

@ -374,8 +374,9 @@ static int ConfYamlParse(yaml_parser_t *parser, ConfNode *parent, int inseq, int
}
else if (event.type == YAML_SEQUENCE_START_EVENT) {
SCLogDebug("event.type=YAML_SEQUENCE_START_EVENT; state=%d", state);
if (ConfYamlParse(parser, node, 1, rlevel, state == CONF_INCLUDE ? CONF_INCLUDE : 0) !=
0)
/* If we're processing a list of includes, use the current parent. */
if (ConfYamlParse(parser, state == CONF_INCLUDE ? parent : node, 1, rlevel,
state == CONF_INCLUDE ? CONF_INCLUDE : 0) != 0)
goto fail;
node->is_seq = 1;
state = CONF_KEY;

Loading…
Cancel
Save