From 5336a97f25c67220384b2c602d23748dd31c7c29 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Mon, 5 Nov 2012 21:42:49 +0000
Subject: [PATCH] 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
---
 main/loader.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/main/loader.c b/main/loader.c
index c1dfc839e6..2af9d2006d 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);
-- 
GitLab