summaryrefslogtreecommitdiffstats
path: root/staticd
diff options
context:
space:
mode:
authorrgirada <rgirada@vmware.com>2020-03-08 02:22:52 +0100
committerrgirada <rgirada@vmware.com>2020-03-08 02:22:52 +0100
commita4155a1b355b5ff93aadab8743f6ff8cf061be90 (patch)
tree0eabf52db24c11fc5dfabfe3a79343cdd500adb1 /staticd
parentMerge pull request #5904 from donaldsharp/close_it (diff)
downloadfrr-a4155a1b355b5ff93aadab8743f6ff8cf061be90.tar.xz
frr-a4155a1b355b5ff93aadab8743f6ff8cf061be90.zip
staticd: Fixing memory leak issue
Memory allotted for staticd specific vrf structers is not being deallocated when the corresponding vrf is destroyed. Signed-off-by: Rajesh Girada <rgirada@vmware.com>
Diffstat (limited to 'staticd')
-rw-r--r--staticd/static_main.c2
-rw-r--r--staticd/static_vrf.c6
-rw-r--r--staticd/static_vrf.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/staticd/static_main.c b/staticd/static_main.c
index 43cb7db51..3aa8a8db3 100644
--- a/staticd/static_main.c
+++ b/staticd/static_main.c
@@ -73,6 +73,8 @@ static void sigint(void)
{
zlog_notice("Terminating on signal");
+ static_vrf_terminate();
+
exit(0);
}
diff --git a/staticd/static_vrf.c b/staticd/static_vrf.c
index abb64aad3..6c065932a 100644
--- a/staticd/static_vrf.c
+++ b/staticd/static_vrf.c
@@ -111,6 +111,7 @@ static int static_vrf_delete(struct vrf *vrf)
svrf->stable[afi][safi] = NULL;
}
}
+ XFREE(MTYPE_TMP, svrf);
return 0;
}
@@ -204,3 +205,8 @@ void static_vrf_init(void)
vrf_cmd_init(static_vrf_config_write, &static_privs);
}
+
+void static_vrf_terminate(void)
+{
+ vrf_terminate();
+}
diff --git a/staticd/static_vrf.h b/staticd/static_vrf.h
index 28fcdd0d3..6951e5671 100644
--- a/staticd/static_vrf.h
+++ b/staticd/static_vrf.h
@@ -35,4 +35,5 @@ void static_vrf_init(void);
struct route_table *static_vrf_static_table(afi_t afi, safi_t safi,
struct static_vrf *svrf);
+extern void static_vrf_terminate(void);
#endif