diff options
author | Martin Mares <mj@ucw.cz> | 1999-03-03 21:56:33 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-03-03 21:56:33 +0100 |
commit | 51ad41f2fc0c95179cb4ba65e568d2b84de32a28 (patch) | |
tree | 5beaeeb8ac3fd089fed8252085abb2645f89b994 | |
parent | 53b7a2982adf5d09a1cfddbc12cf172e0700fc55 (diff) | |
download | bird-51ad41f2fc0c95179cb4ba65e568d2b84de32a28.tar bird-51ad41f2fc0c95179cb4ba65e568d2b84de32a28.zip |
EFence helped to find using of already free rte's in rt_prune().
-rw-r--r-- | nest/rt-table.c | 2 |
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? */ { |