summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-03-03 21:56:33 +0100
committerMartin Mares <mj@ucw.cz>1999-03-03 21:56:33 +0100
commit51ad41f2fc0c95179cb4ba65e568d2b84de32a28 (patch)
tree5beaeeb8ac3fd089fed8252085abb2645f89b994
parent53b7a2982adf5d09a1cfddbc12cf172e0700fc55 (diff)
downloadbird-51ad41f2fc0c95179cb4ba65e568d2b84de32a28.tar
bird-51ad41f2fc0c95179cb4ba65e568d2b84de32a28.zip
EFence helped to find using of already free rte's in rt_prune().
-rw-r--r--nest/rt-table.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c
index 621a835..4da6807 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -328,11 +328,13 @@ rt_prune(rtable *tab)
net *n = (net *) f;
rte *e;
ncnt++;
+ rescan:
for (e=n->routes; e; e=e->next, rcnt++)
if (e->attrs->proto->core_state != FS_HAPPY)
{
rte_discard(e);
rdel++;
+ goto rescan;
}
if (!n->routes) /* Orphaned FIB entry? */
{