summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2012-11-05 21:42:49 +0000
committerRichard Mudgett <rmudgett@digium.com>2012-11-05 21:42:49 +0000
commit5336a97f25c67220384b2c602d23748dd31c7c29 (patch)
treed1869333f15f6a88650483f2d29dc9d745a4046a /main
parentff09fa5ac585d8db4eaf52c32acbcdddfac96d80 (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.c12
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);