[lib/linklist] Enforce "nodes must have data" invariant more rigorously

2008-02-28 Paul Jakma <paul.jakma@sun.com>

	* 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/linklist.c b/lib/linklist.c
index 983da2d..a16e9e1 100644
--- a/lib/linklist.c
+++ b/lib/linklist.c
@@ -65,7 +65,9 @@
 listnode_add (struct list *list, void *val)
 {
   struct listnode *node;
-
+  
+  assert (val != NULL);
+  
   node = listnode_new ();
 
   node->prev = list->tail;
@@ -91,7 +93,9 @@
 {
   struct listnode *n;
   struct listnode *new;
-
+  
+  assert (val != NULL);
+  
   new = listnode_new ();
   new->data = val;
 
@@ -130,7 +134,9 @@
 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 @@
 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 @@
 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;