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