git: e2ceff302833 - main - sctp: ignore SCTP_SENDALL flag on 1-to-1 style sockets
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 28 May 2022 17:08:05 UTC
The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=e2ceff302833ee5f90ac2437efe3670cafcbdd46 commit e2ceff302833ee5f90ac2437efe3670cafcbdd46 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2022-05-28 17:07:10 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2022-05-28 17:07:10 +0000 sctp: ignore SCTP_SENDALL flag on 1-to-1 style sockets MFC after: 3 days --- sys/netinet/sctp_output.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index 3b674ba22666..c012618ca181 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -12537,17 +12537,19 @@ sctp_lower_sosend(struct socket *so, if (flags & MSG_EOF) { sinfo_flags |= SCTP_EOF; } - if (sinfo_flags & SCTP_SENDALL) { - error = sctp_sendall(inp, uio, top, srcv); - top = NULL; - goto out_unlocked; - } if ((sinfo_flags & SCTP_ADDR_OVER) && (addr == NULL)) { error = EINVAL; goto out_unlocked; } - /* Now we must find the association. */ SCTP_INP_RLOCK(inp); + if ((sinfo_flags & SCTP_SENDALL) && + (inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE)) { + SCTP_INP_RUNLOCK(inp); + error = sctp_sendall(inp, uio, top, srcv); + top = NULL; + goto out_unlocked; + } + /* Now we must find the association. */ if ((inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) || (inp->sctp_flags & SCTP_PCB_FLAGS_IN_TCPPOOL)) { stcb = LIST_FIRST(&inp->sctp_asoc_list);