summaryrefslogtreecommitdiffstats
path: root/isisd/isis_spf.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_spf.c')
-rw-r--r--isisd/isis_spf.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c
index a2230cd..7a4b45a 100644
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@ -378,6 +378,8 @@ isis_spftree_new(struct isis_area *area, struct lspdb_head *lspdb,
static void _isis_spftree_del(struct isis_spftree *spftree)
{
+ void *info, *backup_info;
+
hash_clean_and_free(&spftree->prefix_sids, NULL);
isis_zebra_rlfa_unregister_all(spftree);
isis_rlfa_list_clear(spftree);
@@ -391,10 +393,12 @@ static void _isis_spftree_del(struct isis_spftree *spftree)
list_delete(&spftree->sadj_list);
isis_vertex_queue_free(&spftree->tents);
isis_vertex_queue_free(&spftree->paths);
- isis_route_table_info_free(spftree->route_table->info);
- isis_route_table_info_free(spftree->route_table_backup->info);
+ info = spftree->route_table->info;
+ backup_info = spftree->route_table_backup->info;
route_table_finish(spftree->route_table);
route_table_finish(spftree->route_table_backup);
+ isis_route_table_info_free(info);
+ isis_route_table_info_free(backup_info);
}
void isis_spftree_del(struct isis_spftree *spftree)