[asterisk-commits] kmoore: branch 1.8 r400694 -	/branches/1.8/funcs/func_config.c
    SVN commits to the Asterisk project 
    asterisk-commits at lists.digium.com
       
    Tue Oct  8 13:17:33 CDT 2013
    
    
  
Author: kmoore
Date: Tue Oct  8 13:17:31 2013
New Revision: 400694
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=400694
Log:
Fix func_config list entry allocation
The AST_CONFIG dialplan function defined in func_config.c allocates its
config file list entries using ast_malloc. List entry allocations
destined for use with Asterisk's linked list API must be ast_calloc()d
or otherwise initialized so that list pointers are set to NULL. These
uses of ast_malloc have been replaced by ast_calloc to prevent
dereferencing of uninitialized pointer values when traversing the list.
(closes issue ASTERISK-22483)
Reported by: Brian Scott
Modified:
    branches/1.8/funcs/func_config.c
Modified: branches/1.8/funcs/func_config.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_config.c?view=diff&rev=400694&r1=400693&r2=400694
==============================================================================
--- branches/1.8/funcs/func_config.c (original)
+++ branches/1.8/funcs/func_config.c Tue Oct  8 13:17:31 2013
@@ -120,7 +120,7 @@
 			/* At worst, we might leak an entry while upgrading locks */
 			AST_RWLIST_UNLOCK(&configs);
 			AST_RWLIST_WRLOCK(&configs);
-			if (!(cur = ast_malloc(sizeof(*cur) + strlen(args.filename) + 1))) {
+			if (!(cur = ast_calloc(1, sizeof(*cur) + strlen(args.filename) + 1))) {
 				AST_RWLIST_UNLOCK(&configs);
 				return -1;
 			}
@@ -149,7 +149,7 @@
 		}
 
 		if (!cur) {
-			if (!(cur = ast_malloc(sizeof(*cur) + strlen(args.filename) + 1))) {
+			if (!(cur = ast_calloc(1, sizeof(*cur) + strlen(args.filename) + 1))) {
 				AST_RWLIST_UNLOCK(&configs);
 				return -1;
 			}
    
    
More information about the asterisk-commits
mailing list