From: Donald Sharp Date: Fri, 11 May 2018 22:39:09 +0000 (-0400) Subject: pimd: Clean up rpf_hash *after* upstream cleanup X-Git-Tag: frr-6.1-dev~443^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F2217%2Fhead;p=mirror%2Ffrr.git pimd: Clean up rpf_hash *after* upstream cleanup 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 --- diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c index ab4ffc26ae..7e5bb34e31 100644 --- a/pimd/pim_instance.c +++ b/pimd/pim_instance.c @@ -35,13 +35,6 @@ 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);