[collectd] [PATCH] utils_llist.c: Improved robustness against NULL pointers.

Sebastian Harl sh at tokkee.org
Thu May 22 13:36:00 CEST 2008


All functions searching for some list entry now return NULL if the given
list equals NULL. Imho, that's the expected behavior. Also, it removes the
need to check the lists from the calling function while that function
usually checks the returned list entry anyway.

Signed-off-by: Sebastian Harl <sh at tokkee.org>
---
 src/utils_llist.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/utils_llist.c b/src/utils_llist.c
index 7fae025..bf5f7e4 100644
--- a/src/utils_llist.c
+++ b/src/utils_llist.c
@@ -59,6 +59,9 @@ void llist_destroy (llist_t *l)
 	llentry_t *e_this;
 	llentry_t *e_next;
 
+	if (l == NULL)
+		return;
+
 	for (e_this = l->head; e_this != NULL; e_this = e_next)
 	{
 		e_next = e_this->next;
@@ -140,6 +143,9 @@ llentry_t *llist_search (llist_t *l, const char *key)
 {
 	llentry_t *e;
 
+	if (l == NULL)
+		return (NULL);
+
 	for (e = l->head; e != NULL; e = e->next)
 		if (strcmp (key, e->key) == 0)
 			break;
@@ -149,10 +155,14 @@ llentry_t *llist_search (llist_t *l, const char *key)
 
 llentry_t *llist_head (llist_t *l)
 {
+	if (l == NULL)
+		return (NULL);
 	return (l->head);
 }
 
 llentry_t *llist_tail (llist_t *l)
 {
+	if (l == NULL)
+		return (NULL);
 	return (l->tail);
 }
-- 
1.5.5.1.316.g377d9

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://mailman.verplant.org/pipermail/collectd/attachments/20080522/18836f48/attachment.pgp 


More information about the collectd mailing list