mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
Merge pull request #15083 from louis-6wind/fix-isis_spftree_del
isisd: fix _isis_spftree_del heap-use-after-free
This commit is contained in:
commit
4e249eb2e4
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue