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);