summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2015-10-12 11:21:55 -0500
committerRichard Mudgett <rmudgett@digium.com>2015-10-12 15:11:39 -0500
commitc1ed11ee313af9f099049fc4c99bda989c93d3ff (patch)
treed500fdd17be9b39197275558bde7e36a5c12673a
parent7b2afcc92f320b45bf069cff7a0a2d6b25c8036a (diff)
config.c: Fix #include after [section](+).
An #include right after a [section](+) would associate any variable assignments before a new section in the #include with the wrong section. * Fix section association by setting the current section to the appended section. * Fix '+' and '!' section flag interaction corner case depending upon which flag came first. If the '!' came first then it would be ignored. If the '!' came after then it would affect the appended section. The '!' will now no longer be ignored. ASTERISK-25461 #close Reported by: Sean Pimental Change-Id: Ic9d3191c8758048e2cbce6432f854b32531731c3
-rw-r--r--main/config.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/main/config.c b/main/config.c
index 008abffdf..5fe73b7a0 100644
--- a/main/config.c
+++ b/main/config.c
@@ -1696,6 +1696,8 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat,
return -1;
}
if (newcat) {
+ ast_config_set_current_category(cfg, *cat);
+ (*cat)->ignored |= newcat->ignored;
move_variables(newcat, *cat);
ast_category_destroy(newcat);
newcat = NULL;