diff --git a/res/res_sorcery_config.c b/res/res_sorcery_config.c
index b6ad0ccf5fe86e0e1d0da48675df25612dd7b59a..092cc41c8db4a19e4b5f666dcbe207be155d1bf4 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;
 	}