mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +00:00
Fixes nasty bug in BFD.
When a BFD session is removed while being scheduled for notification, the session stays in notify list and is removed twice, which leads to a strange crash after a while.
This commit is contained in:
parent
60442b1698
commit
864f52a5f4
@ -477,8 +477,15 @@ bfd_remove_session(struct bfd_proto *p, struct bfd_session *s)
|
||||
{
|
||||
ip_addr ip = s->addr;
|
||||
|
||||
/* Caller should ensure that request list is empty */
|
||||
|
||||
birdloop_enter(p->loop);
|
||||
|
||||
/* Remove session from notify list if scheduled for notification */
|
||||
/* No need for bfd_lock_sessions(), we are already protected by birdloop_enter() */
|
||||
if (NODE_VALID(&s->n))
|
||||
rem_node(&s->n);
|
||||
|
||||
bfd_free_iface(s->ifa);
|
||||
|
||||
rfree(s->tx_timer);
|
||||
|
Loading…
Reference in New Issue
Block a user