From: Matt Jordan Date: Sun, 19 Jul 2015 14:11:18 +0000 (-0500) Subject: res/res_sorcery_config: Prevent crash from misconfigured sorcery.conf X-Git-Tag: 13.5.0-rc1~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03064daeb2bc78339400b0c05f657032a3e27011;p=thirdparty%2Fasterisk.git res/res_sorcery_config: Prevent crash from misconfigured sorcery.conf Misconfiguring sorcery.conf with a 'config' wizard with no extra data will currently crash Asterisk on startup, as the wizard requires a comma delineated list to parse. This patch updates res_sorcery_config to check for the presence of the data before it starts manipulating it. Change-Id: I4c97512e8258bc82abe190627a9206c28f5d3847 --- diff --git a/res/res_sorcery_config.c b/res/res_sorcery_config.c index db3316e4ee..312015c057 100644 --- a/res/res_sorcery_config.c +++ b/res/res_sorcery_config.c @@ -348,9 +348,18 @@ static void sorcery_config_reload(void *data, const struct ast_sorcery *sorcery, static void *sorcery_config_open(const char *data) { - char *tmp = ast_strdupa(data), *filename = strsep(&tmp, ","), *option; + char *tmp; + char *filename; + char *option; struct sorcery_config *config; + if (ast_strlen_zero(data)) { + return NULL; + } + + tmp = ast_strdupa(data); + filename = strsep(&tmp, ","); + if (ast_strlen_zero(filename) || !(config = ao2_alloc_options(sizeof(*config) + strlen(filename) + 1, sorcery_config_destructor, AO2_ALLOC_OPT_LOCK_NOLOCK))) { return NULL; }