This code didn't survive valgrinding. I wonder how it survived normal run.
diff --git a/isisd/isis_pdu.c b/isisd/isis_pdu.c
index 436240e..3e5154c 100644
--- a/isisd/isis_pdu.c
+++ b/isisd/isis_pdu.c
@@ -141,6 +141,9 @@
   struct in_addr *ip2;
   struct listnode *node1, *node2;
 
+  if ((left == NULL) || (right == NULL))
+    return 0;
+  
   LIST_LOOP (left, ip1, node1)
   {
     LIST_LOOP (right, ip2, node2)