From: Mobashshera Rasool Date: Fri, 24 Jun 2022 06:47:09 +0000 (-0700) Subject: pimd: Avoid reading freed memory. X-Git-Tag: base_8.4~313^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=30247bd637c35ab04f4993e67a36961e4204f12c;p=mirror%2Ffrr.git pimd: Avoid reading freed memory. If the upstream is freed in pim_upstream_del, then trying to call pim_upstream_timers_stop will lead to accessing freed memory. Fix: Stop the timer only if upstream is not deleted. Co-authored-by: Sarita Patra Co-authored-by: Mobashshera Rasool Signed-off-by: Mobashshera Rasool --- diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 3817d5d9e1..54a7f59ca4 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -1948,8 +1948,8 @@ void pim_upstream_terminate(struct pim_instance *pim) struct pim_upstream *up; while ((up = rb_pim_upstream_first(&pim->upstream_head))) { - pim_upstream_del(pim, up, __func__); - pim_upstream_timers_stop(up); + if (pim_upstream_del(pim, up, __func__)) + pim_upstream_timers_stop(up); } rb_pim_upstream_fini(&pim->upstream_head);