diff options
author | Roman Hoog Antink <rha@open.ch> | 2010-05-05 16:00:50 +0200 |
---|---|---|
committer | Greg Troxel <gdt@ir.bbn.com> | 2010-05-05 12:03:33 -0400 |
commit | e26873fd8f0c4306eff65de94a45b4114fc81b98 (patch) | |
tree | 9775a683303e801df8555d5a74dbd714182857f6 /zebra/interface.c | |
parent | cfe117498c8348bfcd8f5f95169a6621e437458a (diff) |
zebra: fix infinite loop when deleting an interface
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>
Diffstat (limited to 'zebra/interface.c')
-rw-r--r-- | zebra/interface.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c index ba4cf25f..03e7ff71 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -477,6 +477,10 @@ if_delete_update (struct interface *ifp) } } #endif /* HAVE_IPV6 */ + else + { + last = node; + } } } zebra_interface_delete_update (ifp); |