diff options
| author | saravanank <saravanank@vmware.com> | 2020-03-15 19:36:33 -0700 |
|---|---|---|
| committer | saravanank <saravanank@vmware.com> | 2020-03-15 19:36:33 -0700 |
| commit | 260c92c867805f575fafa678fbb7c9f5c11a6ba6 (patch) | |
| tree | 08ac7a5aa530744fdccf86f360764ea6e5461b77 | |
| parent | 7f2ccbe562cae49fb8bf1770a0ec79b701ee41af (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.c | 3 |
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; |
