From: Russell Bryant Date: Tue, 13 Jun 2006 04:37:36 +0000 (+0000) Subject: fix a place where code returns without unlocking the vm users list and various X-Git-Tag: 1.4.0-beta1~913 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50dff0e818fae12f6f5e4abc5d4f8b993926774e;p=thirdparty%2Fasterisk.git fix a place where code returns without unlocking the vm users list and various places where code returns without destroying loaded configuration git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@33785 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 313f33893c..a8636a2df0 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -6452,6 +6452,8 @@ static int load_config(void) } } else { free(z); + AST_LIST_UNLOCK(&users); + ast_config_destroy(cfg); return -1; } var = var->next; @@ -6706,8 +6708,10 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s return 0; } - if (!(origtime = ast_variable_retrieve(msg_cfg, "message", "origtime"))) + if (!(origtime = ast_variable_retrieve(msg_cfg, "message", "origtime"))) { + ast_config_destroy(msg_cfg); return 0; + } cid = ast_variable_retrieve(msg_cfg, "message", "callerid"); @@ -6715,6 +6719,8 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s if (!strncasecmp("macro",context,5)) /* Macro names in contexts are useless for our needs */ context = ast_variable_retrieve(msg_cfg, "message","macrocontext"); + ast_config_destroy(msg_cfg); + switch (option) { case 3: if (!res) @@ -6852,8 +6858,6 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s break; } - ast_config_destroy(msg_cfg); - if (!res) { make_file(vms->fn, sizeof(vms->fn), vms->curdir, msg); vms->heard[msg] = 1;