sendit and recvit skip over 0-length vectors
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Mon, 26 Sep 1983 09:32:38 +0000 (01:32 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Mon, 26 Sep 1983 09:32:38 +0000 (01:32 -0800)
SCCS-vsn: sys/kern/uipc_syscalls.c 6.2

usr/src/sys/kern/uipc_syscalls.c

index f3f2392..8979f65 100644 (file)
@@ -1,4 +1,4 @@
-/*     uipc_syscalls.c 6.1     83/07/29        */
+/*     uipc_syscalls.c 6.2     83/09/25        */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
@@ -368,6 +368,8 @@ sendit(s, mp, flags)
                        u.u_error = EINVAL;
                        return;
                }
                        u.u_error = EINVAL;
                        return;
                }
+               if (iov->iov_len == 0)
+                       continue;
                if (useracc(iov->iov_base, (u_int)iov->iov_len, B_READ) == 0) {
                        u.u_error = EFAULT;
                        return;
                if (useracc(iov->iov_base, (u_int)iov->iov_len, B_READ) == 0) {
                        u.u_error = EFAULT;
                        return;
@@ -512,6 +514,8 @@ recvit(s, mp, flags, namelenp, rightslenp)
                        u.u_error = EINVAL;
                        return;
                }
                        u.u_error = EINVAL;
                        return;
                }
+               if (iov->iov_len == 0)
+                       continue;
                if (useracc(iov->iov_base, (u_int)iov->iov_len, B_WRITE) == 0) {
                        u.u_error = EFAULT;
                        return;
                if (useracc(iov->iov_base, (u_int)iov->iov_len, B_WRITE) == 0) {
                        u.u_error = EFAULT;
                        return;