]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ospfd: Free memory associated with ospf instance startup
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 4 Oct 2017 12:04:00 +0000 (08:04 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 10 Oct 2017 16:35:30 +0000 (12:35 -0400)
We have memory that is initialized upon ospf instance
and area startup.  Free it up on shutdown.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
ospfd/ospfd.c

index 24d3abf2a76160282d35e354bcb2bfa4944b03c8..069ba96be616b6515e2cfe21f5d1a3bc45177d51 100644 (file)
@@ -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);