]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Clean up rpf_hash *after* upstream cleanup 2217/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 11 May 2018 22:39:09 +0000 (18:39 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 11 May 2018 22:39:09 +0000 (18:39 -0400)
Cleanup the pim->rpf_hash after upstream cleanup is done
since upstream cleanup uses the rpf_hash to cleanup itself.

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

index ab4ffc26ae4906816e2eecfdc6f54c85d9ea1df8..7e5bb34e31ee391f97cec7139f8a6c93e09eb509 100644 (file)
 
 static void pim_instance_terminate(struct pim_instance *pim)
 {
-       /* Traverse and cleanup rpf_hash */
-       if (pim->rpf_hash) {
-               hash_clean(pim->rpf_hash, (void *)pim_rp_list_hash_clean);
-               hash_free(pim->rpf_hash);
-               pim->rpf_hash = NULL;
-       }
-
        if (pim->ssm_info) {
                pim_ssm_terminate(pim->ssm_info);
                pim->ssm_info = NULL;
@@ -54,6 +47,13 @@ static void pim_instance_terminate(struct pim_instance *pim)
 
        pim_upstream_terminate(pim);
 
+       /* Traverse and cleanup rpf_hash */
+       if (pim->rpf_hash) {
+               hash_clean(pim->rpf_hash, (void *)pim_rp_list_hash_clean);
+               hash_free(pim->rpf_hash);
+               pim->rpf_hash = NULL;
+       }
+
        pim_oil_terminate(pim);
 
        pim_if_terminate(pim);