]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: fix infinite loop when deleting an interface
authorRoman Hoog Antink <rha@open.ch>
Wed, 5 May 2010 14:00:50 +0000 (16:00 +0200)
committerGreg Troxel <gdt@ir.bbn.com>
Wed, 5 May 2010 16:03:33 +0000 (12:03 -0400)
When deleting a VLAN interface after flushing its
addresses, zebra uses 100% CPU time and freezes.

 * interface.c: The while loop in line 407 that
   should clean up connected routes never hits one
   of the 2 lines "last = node;" and thus loops
   forever.

Signed-off-by: Roman Hoog Antink <rha@open.ch>
zebra/interface.c

index ba4cf25f7cefd881b0e7b229c57a23b0375d6eba..03e7ff71386695f20702ac297c6031fc0ac0542b 100644 (file)
@@ -477,6 +477,10 @@ if_delete_update (struct interface *ifp)
                }
            }
 #endif /* HAVE_IPV6 */
+         else
+           {
+             last = node;
+           }
        }
     }
   zebra_interface_delete_update (ifp);