mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
Merge pull request #18639 from FRRouting/mergify/bp/stable/9.1/pr-15716
isisd: Fix memory leaks when the transition of neighbor state from non-UP to DOWN (backport #15716)
This commit is contained in:
commit
94203c4774
|
@ -358,12 +358,15 @@ void isis_adj_state_change(struct isis_adjacency **padj,
|
|||
* purposes */
|
||||
adj->last_flap = time(NULL);
|
||||
adj->flaps++;
|
||||
} else if (old_state == ISIS_ADJ_UP) {
|
||||
} else {
|
||||
if (old_state == ISIS_ADJ_UP) {
|
||||
circuit->adj_state_changes++;
|
||||
|
||||
circuit->upadjcount[level - 1]--;
|
||||
if (circuit->upadjcount[level - 1] == 0)
|
||||
isis_tx_queue_clean(circuit->tx_queue);
|
||||
isis_tx_queue_clean(
|
||||
circuit->tx_queue);
|
||||
}
|
||||
|
||||
if (new_state == ISIS_ADJ_DOWN) {
|
||||
listnode_delete(
|
||||
|
@ -409,10 +412,13 @@ void isis_adj_state_change(struct isis_adjacency **padj,
|
|||
master, send_l2_csnp, circuit,
|
||||
0, &circuit->t_send_csnp[1]);
|
||||
}
|
||||
} else if (old_state == ISIS_ADJ_UP) {
|
||||
} else {
|
||||
if (old_state == ISIS_ADJ_UP) {
|
||||
circuit->upadjcount[level - 1]--;
|
||||
if (circuit->upadjcount[level - 1] == 0)
|
||||
isis_tx_queue_clean(circuit->tx_queue);
|
||||
isis_tx_queue_clean(
|
||||
circuit->tx_queue);
|
||||
}
|
||||
|
||||
if (new_state == ISIS_ADJ_DOWN) {
|
||||
if (adj->circuit->u.p2p.neighbor == adj)
|
||||
|
|
Loading…
Reference in a new issue