summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_bsm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/pimd/pim_bsm.c b/pimd/pim_bsm.c
index 0181e885fd..f2845ee6e1 100644
--- a/pimd/pim_bsm.c
+++ b/pimd/pim_bsm.c
@@ -419,9 +419,12 @@ static void pim_instate_pend_list(struct bsgrp_node *bsgrp_node)
active = bsm_rpinfos_first(bsgrp_node->bsrp_list);
/* Remove nodes with hold time 0 & check if list still has a head */
- frr_each_safe (bsm_rpinfos, bsgrp_node->partial_bsrp_list, pend)
- if (is_hold_time_zero(pend))
+ frr_each_safe (bsm_rpinfos, bsgrp_node->partial_bsrp_list, pend) {
+ if (is_hold_time_zero(pend)) {
bsm_rpinfos_del(bsgrp_node->partial_bsrp_list, pend);
+ pim_bsm_rpinfo_free(pend);
+ }
+ }
pend = bsm_rpinfos_first(bsgrp_node->partial_bsrp_list);