From: Donald Sharp Date: Fri, 3 Aug 2018 02:56:55 +0000 (-0400) Subject: pimd: Cleanup bfd memory on shutdown X-Git-Tag: frr-6.1-dev~100^2~3 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=662ba9e6f0f32f30290d3b8a786623b54159c9b5;p=mirror%2Ffrr.git pimd: Cleanup bfd memory on shutdown When shutting down pim, ensure that we cleanup bfd memory Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_bfd.c b/pimd/pim_bfd.c index f5772174ba..4a3cf715da 100644 --- a/pimd/pim_bfd.c +++ b/pimd/pim_bfd.c @@ -99,9 +99,9 @@ void pim_bfd_info_nbr_create(struct pim_interface *pim_ifp, /* * pim_bfd_info_free - Free BFD info structure */ -void pim_bfd_info_free(void **bfd_info) +void pim_bfd_info_free(struct bfd_info **bfd_info) { - bfd_info_free((struct bfd_info **)bfd_info); + bfd_info_free(bfd_info); } static void pim_bfd_reg_dereg_nbr(struct pim_neighbor *nbr, int command) @@ -151,7 +151,7 @@ int pim_bfd_reg_dereg_all_nbr(struct interface *ifp, int command) if (command != ZEBRA_BFD_DEST_DEREGISTER) pim_bfd_info_nbr_create(pim_ifp, neigh); else - bfd_info_free((struct bfd_info **)&neigh->bfd_info); + pim_bfd_info_free((struct bfd_info **)&neigh->bfd_info); pim_bfd_reg_dereg_nbr(neigh, command); } @@ -170,7 +170,7 @@ void pim_bfd_trigger_event(struct pim_interface *pim_ifp, pim_bfd_info_nbr_create(pim_ifp, nbr); pim_bfd_reg_dereg_nbr(nbr, ZEBRA_BFD_DEST_REGISTER); } else { - pim_bfd_info_free((void *)&nbr->bfd_info); + pim_bfd_info_free(&nbr->bfd_info); pim_bfd_reg_dereg_nbr(nbr, ZEBRA_BFD_DEST_DEREGISTER); } } diff --git a/pimd/pim_bfd.h b/pimd/pim_bfd.h index 0dfd80839f..83def93b66 100644 --- a/pimd/pim_bfd.h +++ b/pimd/pim_bfd.h @@ -36,5 +36,5 @@ void pim_bfd_trigger_event(struct pim_interface *pim_ifp, struct pim_neighbor *nbr, uint8_t nbr_up); void pim_bfd_info_nbr_create(struct pim_interface *pim_ifp, struct pim_neighbor *neigh); -void pim_bfd_info_free(void **bfd_info); +void pim_bfd_info_free(struct bfd_info **bfd_info); #endif /* _PIM_BFD_H */ diff --git a/pimd/pim_neighbor.c b/pimd/pim_neighbor.c index 2730f5e7aa..e73422331f 100644 --- a/pimd/pim_neighbor.c +++ b/pimd/pim_neighbor.c @@ -409,6 +409,9 @@ void pim_neighbor_free(struct pim_neighbor *neigh) list_delete_and_null(&neigh->upstream_jp_agg); THREAD_OFF(neigh->jp_timer); + if (neigh->bfd_info) + pim_bfd_info_free(&neigh->bfd_info); + XFREE(MTYPE_PIM_NEIGHBOR, neigh); }