Author: tuexen
Date: Fri Mar 13 18:38:28 2020
New Revision: 358965
URL: https://svnweb.freebsd.org/changeset/base/358965

Log:
  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

Modified:
  head/lib/libc/sys/sendfile.2
  head/sys/kern/kern_sendfile.c

Modified: head/lib/libc/sys/sendfile.2
==============================================================================
--- head/lib/libc/sys/sendfile.2        Fri Mar 13 17:10:53 2020        
(r358964)
+++ head/lib/libc/sys/sendfile.2        Fri Mar 13 18:38:28 2020        
(r358965)
@@ -431,3 +431,12 @@ to
 .Er EFAULT ,
 if provided an invalid address for
 .Fa sbytes .
+The
+.Fn sendfile
+system call does not support SCTP sockets,
+it will return
+.Dv -1
+and set
+.Va errno
+to
+.Er EINVAL.

Modified: head/sys/kern/kern_sendfile.c
==============================================================================
--- head/sys/kern/kern_sendfile.c       Fri Mar 13 17:10:53 2020        
(r358964)
+++ head/sys/kern/kern_sendfile.c       Fri Mar 13 18:38:28 2020        
(r358965)
@@ -575,6 +575,12 @@ sendfile_getsock(struct thread *td, int s, struct file
        *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);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to