From 163a3f582f671b1ac4a0c21cb97da341c756ed2e Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Tue, 25 Jun 2024 14:37:27 +0200 Subject: [PATCH] pimd: fix misplaced braces/logic error The `!rp_info ||` check got added during a cleanup pass. Unfortunately the braces/and/or combination is not correct :( Fixes: b1945363fbf ("pimd: Various buffer overflow reads and crashes") Signed-off-by: David Lamparter --- pimd/pim_rp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index b0fb8a509a..4703ff8a6a 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -1115,8 +1115,8 @@ int pim_rp_set_upstream_addr(struct pim_instance *pim, pim_addr *up, rp_info = pim_rp_find_match_group(pim, &g); - if (!rp_info || ((pim_rpf_addr_is_inaddr_any(&rp_info->rp)) && - (pim_addr_is_any(source)))) { + if ((!rp_info || (pim_rpf_addr_is_inaddr_any(&rp_info->rp))) && + (pim_addr_is_any(source))) { if (PIM_DEBUG_PIM_NHT_RP) zlog_debug("%s: Received a (*,G) with no RP configured", __func__); -- 2.39.5