[asterisk-commits] kmoore: trunk r400704 - in /trunk: ./ funcs/func_config.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Oct 8 13:20:02 CDT 2013


Author: kmoore
Date: Tue Oct  8 13:19:59 2013
New Revision: 400704

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=400704
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
........

Merged revisions 400694 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 400697 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 400701 from http://svn.asterisk.org/svn/asterisk/branches/12

Modified:
    trunk/   (props changed)
    trunk/funcs/func_config.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-12-merged' - no diff available.

Modified: trunk/funcs/func_config.c
URL: http://svnview.digium.com/svn/asterisk/trunk/funcs/func_config.c?view=diff&rev=400704&r1=400703&r2=400704
==============================================================================
--- trunk/funcs/func_config.c (original)
+++ trunk/funcs/func_config.c Tue Oct  8 13:19:59 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