summaryrefslogtreecommitdiff
path: root/isisd/isis_circuit.c
diff options
context:
space:
mode:
authorOlivier Dugeon <olivier.dugeon@orange.com>2022-08-05 16:00:48 +0200
committerOlivier Dugeon <olivier.dugeon@orange.com>2022-09-02 15:04:35 +0200
commit1fa6385040df57f2d175cd628d7775af2f6c7561 (patch)
treeb4f9542aff901c9c65d32cdb8aa570ab35d79f21 /isisd/isis_circuit.c
parent1011b31a1c72f0fd92a508c486406f3287a6c8e4 (diff)
isisd: Correct Valgrind errors
Runing most of isisd tests with --valgrind-memleaks give many memory errors. This is due to the way isisd is stopped: performing a "no router isis XXX" through CLI solves most of them. Indeed, isis_finish() doesn't call isis_area_destroy() leaving many allocated memory unfreed. This patch adds call to appropriate delete function or XFREE() when necessary to properly free all alocated memory before terminating isisd. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Diffstat (limited to 'isisd/isis_circuit.c')
-rw-r--r--isisd/isis_circuit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 178fbe7903..dcc4ed6e42 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -217,6 +217,11 @@ void isis_circuit_del(struct isis_circuit *circuit)
list_delete(&circuit->ipv6_link);
list_delete(&circuit->ipv6_non_link);
+ if (circuit->ext) {
+ isis_del_ext_subtlvs(circuit->ext);
+ circuit->ext = NULL;
+ }
+
XFREE(MTYPE_TMP, circuit->bfd_config.profile);
XFREE(MTYPE_ISIS_CIRCUIT, circuit->tag);