[PATCH] queue_new(): fix NULL dereference on allocation failure

Neels Hofmeyr nhofmeyr at sysmocom.de
Mon Apr 25 11:00:10 UTC 2016


Coverity complains about a 'Dereference before null check' on *queue.
So, push the NULL check further up.

Though I doubt that 'return EOF' is the proper way to handle allocation
failure, this patch is only about the NULL dereference.

Fixes: CID#57918
---
 gtp/queue.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gtp/queue.c b/gtp/queue.c
index 7c971b0..5b4d849 100644
--- a/gtp/queue.c
+++ b/gtp/queue.c
@@ -127,16 +127,15 @@ int queue_new(struct queue_t **queue)
 	if (QUEUE_DEBUG)
 		printf("queue_new\n");
 	*queue = calloc(1, sizeof(struct queue_t));
+	if (!(*queue))
+		return EOF;
 	(*queue)->next = 0;
 	(*queue)->first = -1;
 	(*queue)->last = -1;
 
 	if (QUEUE_DEBUG)
 		queue_print(*queue);
-	if (*queue)
-		return 0;
-	else
-		return EOF;
+	return 0;
 }
 
 /*! \brief Deallocates queue structure */
-- 
2.1.4



More information about the OpenBSC mailing list