summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsaravanank <saravanank@vmware.com>2020-03-15 19:36:33 -0700
committersaravanank <saravanank@vmware.com>2020-03-15 19:36:33 -0700
commit260c92c867805f575fafa678fbb7c9f5c11a6ba6 (patch)
tree08ac7a5aa530744fdccf86f360764ea6e5461b77
parent7f2ccbe562cae49fb8bf1770a0ec79b701ee41af (diff)
pimd: moving the route_unlock_node outside debug function
Problem: Route node is not de referenced after search when pim debug events are not enabled when pim_rp_find_match_group is called. So this memory will not get released when route node is deleted after hitting this path. RCA: Dereferencing is done inside debug condition. Fix: Moving outside debug condition Signed-off-by: Saravanan K <saravanank@vmware.com>
-rw-r--r--pimd/pim_rp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c
index 8799134edd..355aa07048 100644
--- a/pimd/pim_rp.c
+++ b/pimd/pim_rp.c
@@ -248,13 +248,14 @@ struct rp_info *pim_rp_find_match_group(struct pim_instance *pim,
if (PIM_DEBUG_PIM_TRACE) {
char buf[PREFIX_STRLEN];
- route_unlock_node(rn);
zlog_debug("Lookedup: %p for rp_info: %p(%s) Lock: %d", rn,
rp_info,
prefix2str(&rp_info->group, buf, sizeof(buf)),
rn->lock);
}
+ route_unlock_node(rn);
+
if (!best)
return rp_info;