diff options
| -rw-r--r-- | ospfd/ospfd.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index 24d3abf2a7..069ba96be6 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -634,6 +634,7 @@ static void ospf_finish_final(struct ospf *ospf) /* Reset interface. */ for (ALL_LIST_ELEMENTS(ospf->oiflist, node, nnode, oi)) ospf_if_free(oi); + list_delete(ospf->oiflist); /* De-Register VRF */ ospf_zebra_vrf_deregister(ospf); @@ -768,6 +769,8 @@ static void ospf_finish_final(struct ospf *ospf) if (!CHECK_FLAG(om->options, OSPF_MASTER_SHUTDOWN)) instance = ospf->instance; + list_delete(ospf->oi_write_q); + ospf_delete(ospf); if (ospf->name) { @@ -828,6 +831,8 @@ static void ospf_area_free(struct ospf_area *area) struct route_node *rn; struct ospf_lsa *lsa; + ospf_opaque_type10_lsa_term(area); + /* Free LSDBs. */ LSDB_LOOP(ROUTER_LSDB(area), rn, lsa) ospf_discard_from_db(area->ospf, area->lsdb, lsa); |
