From: Paul Jakma Date: Thu, 28 Feb 2008 00:09:04 +0000 (+0000) Subject: [lib/linklist] Enforce "nodes must have data" invariant more rigorously X-Git-Tag: frr-2.0-rc1~2433 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=5f56808431778fe8878ea8ea94225cca08884b48;p=matthieu%2Ffrr.git [lib/linklist] Enforce "nodes must have data" invariant more rigorously 2008-02-28 Paul Jakma * linklist.c: This implementation expects that the data pointer not be null, e.g. listgetdata() asserts this. The list add methods don't apply the same sanity check. Noted by Jim Carlson in bug #437. --- diff --git a/lib/ChangeLog b/lib/ChangeLog index 2263c03ccc..613a6fcb6d 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,11 @@ +2008-02-28 Paul Jakma + + * linklist.c: This implementation expects that the data pointer not + be null, e.g. listgetdata() asserts this. The list add methods + don't apply the same sanity check. + + Noted by Jim Carlson in bug #437. + 2008-01-11 Andrew J. Schorr * zebra.h: Revert previous change, no need to include diff --git a/lib/linklist.c b/lib/linklist.c index 983da2d155..a16e9e189d 100644 --- a/lib/linklist.c +++ b/lib/linklist.c @@ -65,7 +65,9 @@ void listnode_add (struct list *list, void *val) { struct listnode *node; - + + assert (val != NULL); + node = listnode_new (); node->prev = list->tail; @@ -91,7 +93,9 @@ listnode_add_sort (struct list *list, void *val) { struct listnode *n; struct listnode *new; - + + assert (val != NULL); + new = listnode_new (); new->data = val; @@ -130,7 +134,9 @@ void listnode_add_after (struct list *list, struct listnode *pp, void *val) { struct listnode *nn; - + + assert (val != NULL); + nn = listnode_new (); nn->data = val; @@ -266,7 +272,9 @@ void list_add_node_prev (struct list *list, struct listnode *current, void *val) { struct listnode *node; - + + assert (val != NULL); + node = listnode_new (); node->next = current; node->data = val; @@ -287,7 +295,9 @@ void list_add_node_next (struct list *list, struct listnode *current, void *val) { struct listnode *node; - + + assert (val != NULL); + node = listnode_new (); node->prev = current; node->data = val;