diff options
Diffstat (limited to 'ospf6d/ospf6_top.c')
| -rw-r--r-- | ospf6d/ospf6_top.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c index eb89a14cd3..db45fa5f5c 100644 --- a/ospf6d/ospf6_top.c +++ b/ospf6d/ospf6_top.c @@ -498,6 +498,7 @@ void ospf6_delete(struct ospf6 *o) struct route_node *rn = NULL; struct ospf6_area *oa; struct vrf *vrf; + struct ospf6_external_aggr_rt *aggr; QOBJ_UNREG(o); @@ -536,8 +537,11 @@ void ospf6_delete(struct ospf6 *o) } for (rn = route_top(o->rt_aggr_tbl); rn; rn = route_next(rn)) - if (rn->info) - ospf6_external_aggregator_free(rn->info); + if (rn->info) { + aggr = rn->info; + ospf6_asbr_summary_config_delete(o, rn); + ospf6_external_aggregator_free(aggr); + } route_table_finish(o->rt_aggr_tbl); XFREE(MTYPE_OSPF6_TOP, o->name); |
