From: Richard Mudgett Date: Mon, 9 Dec 2013 18:31:07 +0000 (+0000) Subject: sorcery: Eliminate shadowing a varaible that caused confusion. X-Git-Tag: 12.0.0~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=117286dd878302044036277e25d371adde5bdd58;p=thirdparty%2Fasterisk.git sorcery: Eliminate shadowing a varaible that caused confusion. * Eliminated shadowing of the __ast_sorcery_apply_config() name parameter causing confusion. * Fix potential crash from sorcery.conf user input in __ast_sorcery_apply_config() if the user supplied a malformed config line that is missing the sorcery object type name. * Remove redundant test in __ast_sorcery_apply_config(). !config and config == CONFIGS_STATUS_FILEMISSING are identical. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403541 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/main/sorcery.c b/main/sorcery.c index d0100ac166..2ea6d9eade 100644 --- a/main/sorcery.c +++ b/main/sorcery.c @@ -513,19 +513,21 @@ int __ast_sorcery_apply_config(struct ast_sorcery *sorcery, const char *name, co struct ast_variable *mapping; int res = 0; - if (!config || (config == CONFIG_STATUS_FILEMISSING) || (config == CONFIG_STATUS_FILEINVALID)) { + if (!config || config == CONFIG_STATUS_FILEINVALID) { return -1; } for (mapping = ast_variable_browse(config, name); mapping; mapping = mapping->next) { RAII_VAR(char *, mapping_name, ast_strdup(mapping->name), ast_free); RAII_VAR(char *, mapping_value, ast_strdup(mapping->value), ast_free); - char *options = mapping_name, *name = strsep(&options, "/"); - char *data = mapping_value, *wizard = strsep(&data, ","); + char *options = mapping_name; + char *type = strsep(&options, "/"); + char *data = mapping_value; + char *wizard = strsep(&data, ","); unsigned int caching = 0; - /* If no wizard exists just skip, nothing we can do */ - if (ast_strlen_zero(wizard)) { + /* If no object type or wizard exists just skip, nothing we can do */ + if (ast_strlen_zero(type) || ast_strlen_zero(wizard)) { continue; } @@ -535,7 +537,8 @@ int __ast_sorcery_apply_config(struct ast_sorcery *sorcery, const char *name, co } /* Any error immediately causes us to stop */ - if ((res = sorcery_apply_wizard_mapping(sorcery, name, module, wizard, data, caching))) { + if (sorcery_apply_wizard_mapping(sorcery, type, module, wizard, data, caching)) { + res = -1; break; } }