From 9a61f79a72e67388eb2b2db3ff4db4a7f60be556 Mon Sep 17 00:00:00 2001 From: skarg Date: Tue, 16 Sep 2008 12:59:06 +0000 Subject: [PATCH] Added NULL pointer checking to ring buffer library. --- bacnet-stack/src/ringbuf.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/bacnet-stack/src/ringbuf.c b/bacnet-stack/src/ringbuf.c index 3a9568aa..1d28d90a 100644 --- a/bacnet-stack/src/ringbuf.c +++ b/bacnet-stack/src/ringbuf.c @@ -49,7 +49,7 @@ bool Ringbuf_Empty( RING_BUFFER const *b) { - return (b->count == 0); + return (b ? b->count == 0 : true); } /**************************************************************************** @@ -61,7 +61,10 @@ bool Ringbuf_Empty( char *Ringbuf_Get_Front( RING_BUFFER const *b) { - return (b->count ? &(b->data[b->head * b->element_size]) : NULL); + if (b) { + return (b->count ? &(b->data[b->head * b->element_size]) : NULL); + } + return NULL; } /**************************************************************************** @@ -75,7 +78,7 @@ char *Ringbuf_Pop_Front( { char *data = NULL; /* return value */ - if (b->count) { + if (b && b->count) { data = &(b->data[b->head * b->element_size]); b->head++; if (b->head >= b->element_count) @@ -131,11 +134,13 @@ void Ringbuf_Init( unsigned element_size, /* size of one element in the data block */ unsigned element_count) { /* number of elements in the data block */ - b->head = 0; - b->count = 0; - b->data = data; - b->element_size = element_size; - b->element_count = element_count; + if (b) { + b->head = 0; + b->count = 0; + b->data = data; + b->element_size = element_size; + b->element_count = element_count; + } return; }