aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbweschke <bweschke@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-20 05:07:25 +0000
committerbweschke <bweschke@f38db490-d61c-443f-a65b-d21fe96a405b>2008-10-20 05:07:25 +0000
commit91b856c6c246b95a7b7b1e7d890a7db9faa81f43 (patch)
tree5d8a1c01a4b110421fba82e690232989787995ab
parent6a331b071212dc78f40a404a9c385fa6cfe49a19 (diff)
Do NOT attempt to do anything with the ast_config struct when it's been returned as INVALID by the config file interpreter.
(closes issue #13741) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@151246 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--main/config.c4
-rw-r--r--pbx/pbx_config.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/main/config.c b/main/config.c
index 2055af396..a382a7a80 100644
--- a/main/config.c
+++ b/main/config.c
@@ -2050,9 +2050,9 @@ struct ast_config *ast_config_internal_load(const char *filename, struct ast_con
result = loader->load_func(db, table, filename, cfg, flags, suggested_include_file, who_asked);
- if (result && result != CONFIG_STATUS_FILEUNCHANGED)
+ if (result && result != CONFIG_STATUS_FILEINVALID && result != CONFIG_STATUS_FILEUNCHANGED)
result->include_level--;
- else
+ else if (result != CONFIG_STATUS_FILEINVALID)
cfg->include_level--;
return result;
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 798a098bb..2899ec1a7 100644
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1412,7 +1412,7 @@ static int pbx_load_config(const char *config_file)
struct ast_flags config_flags = { 0 };
char lastextension[256];
cfg = ast_config_load(config_file, config_flags);
- if (!cfg)
+ if (!cfg || cfg == CONFIG_STATUS_FILEINVALID)
return 0;
/* Use existing config to populate the PBX table */