Module Name:    src
Committed By:   matt
Date:           Wed Jun  9 18:13:46 UTC 2010

Modified Files:
        src/sys/compat/netbsd32 [matt-nb5-mips64]: netbsd32_conv.h
            netbsd32_socket.c

Log Message:
Fix socket passing in netbsd32 compat.  unfdpasses and incoming ssh
interactive session now work.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.19.12.1 src/sys/compat/netbsd32/netbsd32_conv.h
cvs rdiff -u -r1.33 -r1.33.12.1 src/sys/compat/netbsd32/netbsd32_socket.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/netbsd32/netbsd32_conv.h
diff -u src/sys/compat/netbsd32/netbsd32_conv.h:1.19 src/sys/compat/netbsd32/netbsd32_conv.h:1.19.12.1
--- src/sys/compat/netbsd32/netbsd32_conv.h:1.19	Mon Jun  2 14:12:08 2008
+++ src/sys/compat/netbsd32/netbsd32_conv.h	Wed Jun  9 18:13:46 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_conv.h,v 1.19 2008/06/02 14:12:08 njoly Exp $	*/
+/*	$NetBSD: netbsd32_conv.h,v 1.19.12.1 2010/06/09 18:13:46 matt Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -234,6 +234,7 @@
 
 	mhp->msg_name = NETBSD32PTR64(mhp32->msg_name);
 	mhp->msg_namelen = mhp32->msg_namelen;
+	mhp->msg_iov = NETBSD32PTR64(mhp32->msg_iov);
 	mhp->msg_iovlen = (size_t)mhp32->msg_iovlen;
 	mhp->msg_control = NETBSD32PTR64(mhp32->msg_control);
 	mhp->msg_controllen = mhp32->msg_controllen;

Index: src/sys/compat/netbsd32/netbsd32_socket.c
diff -u src/sys/compat/netbsd32/netbsd32_socket.c:1.33 src/sys/compat/netbsd32/netbsd32_socket.c:1.33.12.1
--- src/sys/compat/netbsd32/netbsd32_socket.c:1.33	Tue Jun 24 11:18:15 2008
+++ src/sys/compat/netbsd32/netbsd32_socket.c	Wed Jun  9 18:13:46 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_socket.c,v 1.33 2008/06/24 11:18:15 ad Exp $	*/
+/*	$NetBSD: netbsd32_socket.c,v 1.33.12.1 2010/06/09 18:13:46 matt Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.33 2008/06/24 11:18:15 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_socket.c,v 1.33.12.1 2010/06/09 18:13:46 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -77,6 +77,7 @@
 		       M_WAITOK);
 	} else 
 		iov = aiov;
+
 	msg.msg_flags = SCARG(uap, flags);
 	uiov = (struct iovec *)NETBSD32PTR64(msg.msg_iov);
 	error = netbsd32_to_iovecin((struct netbsd32_iovec *)uiov,
@@ -237,10 +238,8 @@
 		iov = (struct iovec *)malloc(
 		       sizeof(struct iovec) * (u_int)msg.msg_iovlen, M_IOV,
 		       M_WAITOK);
-	} else if ((u_int)msg.msg_iovlen > 0)
+	} else
 		iov = aiov;
-	else
-		return (EMSGSIZE);
 
 	error = netbsd32_to_iovecin((struct netbsd32_iovec *)msg.msg_iov,
 				   iov, msg.msg_iovlen);

Reply via email to