summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Hoog Antink <rha@open.ch>2010-05-05 16:00:50 +0200
committerGreg Troxel <gdt@ir.bbn.com>2010-05-05 12:03:33 -0400
commite26873fd8f0c4306eff65de94a45b4114fc81b98 (patch)
tree9775a683303e801df8555d5a74dbd714182857f6
parentcfe117498c8348bfcd8f5f95169a6621e437458a (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>
-rw-r--r--zebra/interface.c4
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);