]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim: Clean up some data on shutdown in msdp
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 2 Aug 2018 23:58:24 +0000 (19:58 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 2 Aug 2018 23:58:24 +0000 (19:58 -0400)
We were leaking some msdp hash backets and a msdp stream
data pointer on shutdown.

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

index 951e743494a8f290ea6b806b4252e15a4c04dc1e..391a0eebc1987f205c0bc9372559f2295bbf46bc 100644 (file)
@@ -1599,6 +1599,7 @@ void pim_msdp_exit(struct pim_instance *pim)
        /* XXX: stop listener and delete all peer sessions */
 
        if (pim->msdp.peer_hash) {
+               hash_clean(pim->msdp.peer_hash, NULL);
                hash_free(pim->msdp.peer_hash);
                pim->msdp.peer_hash = NULL;
        }
@@ -1608,6 +1609,7 @@ void pim_msdp_exit(struct pim_instance *pim)
        }
 
        if (pim->msdp.sa_hash) {
+               hash_clean(pim->msdp.sa_hash, NULL);
                hash_free(pim->msdp.sa_hash);
                pim->msdp.sa_hash = NULL;
        }
@@ -1615,4 +1617,8 @@ void pim_msdp_exit(struct pim_instance *pim)
        if (pim->msdp.sa_list) {
                list_delete_and_null(&pim->msdp.sa_list);
        }
+
+       if (pim->msdp.work_obuf)
+               stream_free(pim->msdp.work_obuf);
+       pim->msdp.work_obuf = NULL;
 }