]> git.puffer.fish Git - mirror/frr.git/commitdiff
2004-09-24 Paul Jakma <paul@dishone.st>
authorpaul <paul>
Fri, 24 Sep 2004 08:23:24 +0000 (08:23 +0000)
committerpaul <paul>
Fri, 24 Sep 2004 08:23:24 +0000 (08:23 +0000)
        * ospf_apiserver.{c,h}: (ospf_apiserver_term) loops calling
          ospf_apiserver_free, which deletes referenced nodes from
          apiserver_list, fixed.

ospfd/ChangeLog
ospfd/ospf_apiserver.c

index 8f1ffb686bf55e08a3c75f6dd6508ebbe2466241..53ae8f29dbcc26be7c35ecb3fb0e1154dc2a0ed5 100644 (file)
@@ -5,6 +5,8 @@
           fixups.
           (ospf_apiserver_unregister_opaque_type) fix listnode_delete of
           referenced node in loop.
+         (ospf_apiserver_term) loops calling ospf_apiserver_free, which
+          deletes referenced nodes from apiserver_list, fixed.
         * ospf_interface.h: lists typedef removal cleanup.
         * ospf_opaque.{c,h}: lists typedef removal cleanup. update some list 
           loops to LIST_LOOP. miscellaneous style and indent fixups.
index fa2d99305f62221c6fc7b2be439585d02fff1cda..9a2a65d1a4714652fe014c1cd6c7d4ddd52d9cbf 100644 (file)
@@ -180,7 +180,7 @@ out:
 void
 ospf_apiserver_term (void)
 {
-  struct listnode *node;
+  struct listnode *node, *nnode;
   struct ospf_apiserver *apiserv;
 
   /* Unregister wildcard [0/0] type */
@@ -188,7 +188,7 @@ ospf_apiserver_term (void)
                              0 /* all opaque types */);
 
   /* Free all client instances */
-  LIST_LOOP (apiserver_list, apiserv, node)
+  while ( (node = listhead (apiserver_list)) != NULL)
     ospf_apiserver_free (apiserv);
 
   /* Free client list itself */
@@ -1177,7 +1177,7 @@ ospf_apiserver_notify_ready_type11 (struct ospf_apiserver *apiserv)
 
   /* Can type 11 be originated? */
   if (!ospf_apiserver_is_ready_type11 (ospf))
-    goto out;;
+    goto out;
 
   /* Check for registered opaque type 11 types */
   LIST_LOOP (apiserv->opaque_types, r, node)