[svn-commits] branch 1.2 r33783 - /branches/1.2/apps/app_voicemail.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Mon Jun 12 21:31:20 MST 2006


Author: russell
Date: Mon Jun 12 23:31:19 2006
New Revision: 33783

URL: http://svn.digium.com/view/asterisk?rev=33783&view=rev
Log:
fix various places where the code returns without unlocking vmlock or
destroying loaded configuration

Modified:
    branches/1.2/apps/app_voicemail.c

Modified: branches/1.2/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/apps/app_voicemail.c?rev=33783&r1=33782&r2=33783&view=diff
==============================================================================
--- branches/1.2/apps/app_voicemail.c (original)
+++ branches/1.2/apps/app_voicemail.c Mon Jun 12 23:31:19 2006
@@ -6172,10 +6172,14 @@
 							} else {
 								ast_log(LOG_WARNING, "Out of memory while reading voicemail config\n");
 								free(z);
+								ast_mutex_unlock(&vmlock);
+								ast_config_destroy(cfg);
 								return -1;
 							}
 						} else {
 							ast_log(LOG_WARNING, "Out of memory while reading voicemail config\n");
+							ast_mutex_unlock(&vmlock);
+							ast_config_destroy(cfg);
 							return -1;
 						}
 						var = var->next;
@@ -6435,14 +6439,18 @@
 		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");
 
 	context = ast_variable_retrieve(msg_cfg, "message", "context");
 	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);
 
 	if (option == 3) {
 
@@ -6575,8 +6583,6 @@
 			res = 0;
 		}
 	}
-
-	ast_config_destroy(msg_cfg);
 
 	if (!res) {
 		make_file(vms->fn, sizeof(vms->fn), vms->curdir, msg);



More information about the svn-commits mailing list