summaryrefslogtreecommitdiff
path: root/pimd/pim_instance.c
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2022-06-24 11:53:43 -0400
committerGitHub <noreply@github.com>2022-06-24 11:53:43 -0400
commit3e905d92c4983b99cf578ca541969ff6b022d014 (patch)
tree1d977d88c12bafd19685f3f2f832d602b345e34e /pimd/pim_instance.c
parent443795a8646e360007b9fc76b25959fb852e1077 (diff)
parentbc26d1bb61b56fe334f4e217e371999a5bae25b5 (diff)
Merge pull request #11468 from patrasar/pim_valgrind_fix
pimd: Fixing invalid memory access
Diffstat (limited to 'pimd/pim_instance.c')
-rw-r--r--pimd/pim_instance.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c
index 8f117033e4..a25026cef9 100644
--- a/pimd/pim_instance.c
+++ b/pimd/pim_instance.c
@@ -238,5 +238,20 @@ void pim_vrf_init(void)
void pim_vrf_terminate(void)
{
+ struct vrf *vrf;
+
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
+ struct pim_instance *pim;
+
+ pim = vrf->info;
+ if (!pim)
+ continue;
+
+ pim_ssmpingd_destroy(pim);
+ pim_instance_terminate(pim);
+
+ vrf->info = NULL;
+ }
+
vrf_terminate();
}