[asterisk-commits] tilghman: branch 1.2 r42892 - /branches/1.2/apps/app_voicemail.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Sep 13 12:51:25 MST 2006


Author: tilghman
Date: Wed Sep 13 14:51:24 2006
New Revision: 42892

URL: http://svn.digium.com/view/asterisk?rev=42892&view=rev
Log:
Backport bugfix patch from 7918 to 1.2 - msg_cfg destroyed before used

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=42892&r1=42891&r2=42892&view=diff
==============================================================================
--- branches/1.2/apps/app_voicemail.c (original)
+++ branches/1.2/apps/app_voicemail.c Wed Sep 13 14:51:24 2006
@@ -6468,8 +6468,6 @@
 	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) {
 
 		if (!res)
@@ -6489,8 +6487,10 @@
 						if (num) {
 							/* Dial the CID number */
 							res = dialout(chan, vmu, num, vmu->callback);
-							if (res)
+							if (res) {
+								ast_config_destroy(msg_cfg);
 								return 9;
+							}
 						} else {
 							res = '2';
 						}
@@ -6500,13 +6500,16 @@
 						/* Want to enter a different number, can only do this if there's a dialout context for this user */
 						if (!ast_strlen_zero(vmu->dialout)) {
 							res = dialout(chan, vmu, NULL, vmu->dialout);
-							if (res)
+							if (res) {
+								ast_config_destroy(msg_cfg);
 								return 9;
+							}
 						} else {
 							if (option_verbose > 2)
 								ast_verbose( VERBOSE_PREFIX_3 "Caller can not specify callback number - no dialout context available\n");
 							res = ast_play_and_wait(chan, "vm-sorry");
 						}
+						ast_config_destroy(msg_cfg);
 						return res;
 					case '*':
 						res = 't';
@@ -6573,6 +6576,7 @@
 					ast_verbose(VERBOSE_PREFIX_3 "No CID number available, no reply sent\n");
 				if (!res)
 					res = ast_play_and_wait(chan, "vm-nonumber");
+				ast_config_destroy(msg_cfg);
 				return res;
 			} else {
 				if (find_user(NULL, vmu->context, num)) {
@@ -6586,6 +6590,7 @@
 					memset(&leave_options, 0, sizeof(leave_options));
 					leave_options.record_gain = record_gain;
 					res = leave_voicemail(chan, mailbox, &leave_options);
+					ast_config_destroy(msg_cfg);
 					if (!res)
 						res = 't';
 					return res;
@@ -6594,6 +6599,7 @@
 					if (option_verbose > 2)
 						ast_verbose( VERBOSE_PREFIX_3 "No mailbox number '%s' in context '%s', no reply sent\n", num, vmu->context);
 					ast_play_and_wait(chan, "vm-nobox");
+					ast_config_destroy(msg_cfg);
 					res = 't';
 					return res;
 				}
@@ -6607,6 +6613,7 @@
 		vms->heard[msg] = 1;
 		res = wait_file(chan, vms, vms->fn);
 	}
+	ast_config_destroy(msg_cfg);
 	return res;
 }
  



More information about the asterisk-commits mailing list