aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_sendfile.c
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@FreeBSD.org>2020-03-13 18:38:28 +0000
committerMichael Tuexen <tuexen@FreeBSD.org>2020-03-13 18:38:28 +0000
commitdb4493f7b64926d0c9b564bd15119382318a6584 (patch)
tree78b34bf1cdf0a61b1618e04bf65387d5c2fdac45 /sys/kern/kern_sendfile.c
parentc0507192fa64d0112694a0e6245338a2d62ed565 (diff)
sendfile() does currently not support SCTP sockets.
Therefore, fail the call. Reviewed by: markj@ MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24059
Notes
Notes: svn path=/head/; revision=358965
Diffstat (limited to 'sys/kern/kern_sendfile.c')
-rw-r--r--sys/kern/kern_sendfile.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/kern/kern_sendfile.c b/sys/kern/kern_sendfile.c
index b161ae883294..ca42336f99f2 100644
--- a/sys/kern/kern_sendfile.c
+++ b/sys/kern/kern_sendfile.c
@@ -575,6 +575,12 @@ sendfile_getsock(struct thread *td, int s, struct file **sock_fp,
*so = (*sock_fp)->f_data;
if ((*so)->so_type != SOCK_STREAM)
return (EINVAL);
+ /*
+ * SCTP one-to-one style sockets currently don't work with
+ * sendfile(). So indicate EINVAL for now.
+ */
+ if ((*so)->so_proto->pr_protocol == IPPROTO_SCTP)
+ return (EINVAL);
if (SOLISTENING(*so))
return (ENOTCONN);
return (0);