Skip to content
Snippets Groups Projects
Commit 4e72ad1b authored by Kinsey Moore's avatar Kinsey Moore
Browse files

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400704 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 4873c11f
No related branches found
No related tags found
No related merge requests found
......@@ -120,7 +120,7 @@ static int config_function_read(struct ast_channel *chan, const char *cmd, char
/* 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 @@ static int config_function_read(struct ast_channel *chan, const char *cmd, char
}
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;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment