diff options
author | Richard Mudgett <rmudgett@digium.com> | 2012-11-05 21:42:49 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2012-11-05 21:42:49 +0000 |
commit | 5336a97f25c67220384b2c602d23748dd31c7c29 (patch) | |
tree | d1869333f15f6a88650483f2d29dc9d745a4046a /main | |
parent | ff09fa5ac585d8db4eaf52c32acbcdddfac96d80 (diff) |
Add safety NULL pointer check in module user references.
Made __ast_module_user_remove() check for NULL pointers.
........
Merged revision 375860 from C.3
........
Merged revisions 375862 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 375863 from http://svn.asterisk.org/svn/asterisk/branches/10
........
Merged revisions 375864 from http://svn.asterisk.org/svn/asterisk/branches/11
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@375865 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r-- | main/loader.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/main/loader.c b/main/loader.c index c1dfc839e..2af9d2006 100644 --- a/main/loader.c +++ b/main/loader.c @@ -210,13 +210,14 @@ void ast_module_unregister(const struct ast_module_info *info) } } -struct ast_module_user *__ast_module_user_add(struct ast_module *mod, - struct ast_channel *chan) +struct ast_module_user *__ast_module_user_add(struct ast_module *mod, struct ast_channel *chan) { - struct ast_module_user *u = ast_calloc(1, sizeof(*u)); + struct ast_module_user *u; - if (!u) + u = ast_calloc(1, sizeof(*u)); + if (!u) { return NULL; + } u->chan = chan; @@ -233,6 +234,9 @@ struct ast_module_user *__ast_module_user_add(struct ast_module *mod, void __ast_module_user_remove(struct ast_module *mod, struct ast_module_user *u) { + if (!u) { + return; + } AST_LIST_LOCK(&mod->users); AST_LIST_REMOVE(&mod->users, u, entry); AST_LIST_UNLOCK(&mod->users); |