[asterisk-commits] mmichelson: trunk r114651 - /trunk/apps/app_voicemail.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Apr 25 11:25:17 CDT 2008


Author: mmichelson
Date: Fri Apr 25 11:25:17 2008
New Revision: 114651

URL: http://svn.digium.com/view/asterisk?view=rev&rev=114651
Log:
Fix a memory leak and protect against potential dereferences of a NULL
pointer.


Modified:
    trunk/apps/app_voicemail.c

Modified: trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_voicemail.c?view=diff&rev=114651&r1=114650&r2=114651
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Fri Apr 25 11:25:17 2008
@@ -4561,11 +4561,11 @@
 	strncat(textfile, ".txt", sizeof(textfile) - strlen(textfile) - 1);
 	strncat(backup, "-bak", sizeof(backup) - strlen(backup) - 1);
 
-	msg_cfg = ast_config_load(textfile, config_flags);
-
-	*duration = 0;
-	if ((duration_str = ast_variable_retrieve(msg_cfg, "message", "duration")))
+	if ((msg_cfg = ast_config_load(textfile, config_flags)) && (duration_str = ast_variable_retrieve(msg_cfg, "message", "duration"))) {
 		*duration = atoi(duration_str);
+	} else {
+		*duration = 0;
+	}
 
 	while ((cmd >= 0) && (cmd != 't') && (cmd != '*')) {
 		if (cmd)
@@ -4576,7 +4576,7 @@
 			prepend_duration = 0;
 
 			/* if we can't read the message metadata, stop now */
-			if (!(msg_cfg = ast_config_load(textfile, config_flags))) {
+			if (!msg_cfg) {
 				cmd = 0;
 				break;
 			}
@@ -4631,7 +4631,8 @@
 		}
 	}
 
-	ast_config_destroy(msg_cfg);
+	if (msg_cfg)
+		ast_config_destroy(msg_cfg);
 	if (already_recorded)
 		ast_filedelete(backup, NULL);
 	if (prepend_duration)




More information about the asterisk-commits mailing list