diff options
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r-- | channels/chan_iax2.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 31d9ccf2e..32ebe341b 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -11010,10 +11010,21 @@ static int set_config(char *config_file, int reload) return 0; /* Otherwise we need to reread both files */ ast_clear_flag(&config_flags, CONFIG_FLAG_FILEUNCHANGED); - cfg = ast_config_load(config_file, config_flags); + if ((cfg = ast_config_load(config_file, config_flags)) == CONFIG_STATUS_FILEINVALID) { + ast_log(LOG_ERROR, "Config file %s is in an invalid format. Aborting.\n", config_file); + ast_config_destroy(ucfg); + return 0; + } + } else if (cfg == CONFIG_STATUS_FILEINVALID) { + ast_log(LOG_ERROR, "Config file %s is in an invalid format. Aborting.\n", config_file); + return 0; } else { /* iax.conf changed, gotta reread users.conf, too */ ast_clear_flag(&config_flags, CONFIG_FLAG_FILEUNCHANGED); - ucfg = ast_config_load("users.conf", config_flags); + if ((ucfg = ast_config_load("users.conf", config_flags)) == CONFIG_STATUS_FILEINVALID) { + ast_log(LOG_ERROR, "Config file users.conf is in an invalid format. Aborting.\n"); + ast_config_destroy(cfg); + return 0; + } } if (reload) { |