Date: Mon, 3 May 2021 00:53:01 GMT From: Michael Tuexen <tuexen@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 8b3d0f6439fa - main - sctp: improve address list scanning Message-ID: <202105030053.1430r1gn091723@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=8b3d0f6439fa27f0d37a9a7b9d27bbfdfdf487c4 commit 8b3d0f6439fa27f0d37a9a7b9d27bbfdfdf487c4 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2021-05-03 00:50:05 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2021-05-03 00:50:05 +0000 sctp: improve address list scanning If the alternate address has to be removed, force the stack to find a new one, if it is still needed. MFC after: 3 days --- sys/netinet/sctp_pcb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c index f4264ab387f1..08acccbf9185 100644 --- a/sys/netinet/sctp_pcb.c +++ b/sys/netinet/sctp_pcb.c @@ -6562,11 +6562,15 @@ next_param: /* remove and free it */ stcb->asoc.numnets--; TAILQ_REMOVE(&stcb->asoc.nets, net, sctp_next); - sctp_free_remote_addr(net); + if (net == stcb->asoc.alternate) { + sctp_free_remote_addr(stcb->asoc.alternate); + stcb->asoc.alternate = NULL; + } if (net == stcb->asoc.primary_destination) { stcb->asoc.primary_destination = NULL; sctp_select_primary_destination(stcb); } + sctp_free_remote_addr(net); } } if ((stcb->asoc.ecn_supported == 1) &&
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202105030053.1430r1gn091723>