]> git.proxmox.com Git - mirror_frr.git/commit
pimd: fix invalid memory access join_timer_stop
authorSarita Patra <saritap@vmware.com>
Fri, 24 Jun 2022 10:04:37 +0000 (03:04 -0700)
committerSarita Patra <saritap@vmware.com>
Fri, 24 Jun 2022 12:37:18 +0000 (05:37 -0700)
commitbc26d1bb61b56fe334f4e217e371999a5bae25b5
treea600a28504d3ad8c443eba5971e2305130295096
parentc6c4b5e68ffe85e38a1e23a58c19e6462d517565
pimd: fix invalid memory access join_timer_stop

Issue:
==16837== Invalid read of size 8
==16837==    at 0x17971C: pim_neighbor_find (pim_neighbor.c:431)
==16837==    by 0x186439: join_timer_stop (pim_upstream.c:348)
==16837==    by 0x186794: pim_upstream_del (pim_upstream.c:231)
==16837==    by 0x189A66: pim_upstream_terminate (pim_upstream.c:1951)
==16837==    by 0x17111B: pim_instance_terminate (pim_instance.c:54)
==16837==    by 0x17111B: pim_vrf_delete (pim_instance.c:172)
==16837==    by 0x4F1D6C8: vrf_delete (vrf.c:264)
==16837==    by 0x19006F: pim_terminate (pimd.c:160)
==16837==    by 0x1B2E4D: pim_sigterm (pim_signals.c:51)
==16837==    by 0x4F08FA2: frr_sigevent_process (sigevent.c:130)
==16837==    by 0x4F1A2CC: thread_fetch (thread.c:1771)
==16837==    by 0x4ED4F92: frr_run (libfrr.c:1197)
==16837==    by 0x15D81A: main (pim_main.c:176)

Root Cause:
In the pim_terminate flow, the interface is deleted
before the pim_interface clean up. Because of this,
the pim_interface is having garbage value.

Fix:
Release the pim interface memory and then delete the
interface.

Signed-off-by: Sarita Patra <saritap@vmware.com>
pimd/pim_instance.c