summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2025-02-06 13:14:50 -0500
committerGitHub <noreply@github.com>2025-02-06 13:14:50 -0500
commitf04f61163399e76a36437533c6bad2d6e47fcee7 (patch)
tree4d85b88efed3b75d34569f6617c4d406ed1a9ac0
parent92b8e144609c741b8ad0a47505abd9e616b3cc6e (diff)
parent3510a37b1115dc1286349ed0977443b09f6bc15e (diff)
Merge pull request #18033 from donaldsharp/isis_leak_lists
isisd: Do not leak a linked list in the circuit
-rw-r--r--isisd/isis_circuit.c2
-rw-r--r--isisd/isis_events.c3
2 files changed, 2 insertions, 3 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 9ea2cfd0a1..5b62d3c518 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -840,12 +840,10 @@ void isis_circuit_down(struct isis_circuit *circuit)
if (circuit->u.bc.adjdb[0]) {
circuit->u.bc.adjdb[0]->del = isis_delete_adj;
list_delete(&circuit->u.bc.adjdb[0]);
- circuit->u.bc.adjdb[0] = NULL;
}
if (circuit->u.bc.adjdb[1]) {
circuit->u.bc.adjdb[1]->del = isis_delete_adj;
list_delete(&circuit->u.bc.adjdb[1]);
- circuit->u.bc.adjdb[1] = NULL;
}
if (circuit->u.bc.is_dr[0]) {
isis_dr_resign(circuit, 1);
diff --git a/isisd/isis_events.c b/isisd/isis_events.c
index 5574bbc50f..5237e99999 100644
--- a/isisd/isis_events.c
+++ b/isisd/isis_events.c
@@ -83,7 +83,8 @@ static void circuit_commence_level(struct isis_circuit *circuit, int level)
send_hello_sched(circuit, level, TRIGGERED_IIH_DELAY);
circuit->u.bc.lan_neighs[level - 1] = list_new();
- circuit->u.bc.adjdb[level - 1] = list_new();
+ if (!circuit->u.bc.adjdb[level - 1])
+ circuit->u.bc.adjdb[level - 1] = list_new();
}
}