From owner-freebsd-current Sat Jun 29 01:03:47 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id BAA15658 for current-outgoing; Sat, 29 Jun 1996 01:03:47 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id BAA15625 for ; Sat, 29 Jun 1996 01:02:13 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id RAA29925; Sat, 29 Jun 1996 17:59:17 +1000 Date: Sat, 29 Jun 1996 17:59:17 +1000 From: Bruce Evans Message-Id: <199606290759.RAA29925@godzilla.zeta.org.au> To: current@freebsd.org, terry@lambert.org Subject: Re: Problem Report docs/731 Cc: witr@rwwa.COM Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >============================================================================ >*** uipc_syscalls.c.bad Fri Jun 28 16:07:22 1996 >--- uipc_syscalls.c Fri Jun 28 16:11:52 1996 >*************** >*** 370,377 **** > goto free4; > } > error = copyout((caddr_t)sv, (caddr_t)uap->rsv, 2 * sizeof (int)); >! retval[0] = sv[0]; /* XXX ??? */ >! retval[1] = sv[1]; /* XXX ??? */ > return (error); > free4: > ffree(fp2); >--- 370,376 ---- > goto free4; > } > error = copyout((caddr_t)sv, (caddr_t)uap->rsv, 2 * sizeof (int)); >! *retval = 0; /* indicate success*/ > return (error); > free4: > ffree(fp2); >============================================================================ >3) Close this problem report. 2a) Investigate possible breakage of socketpair() in foreign libraries (BSDI, Linux, etc). Any library that uses the previously suggested fix of handling socketpair() like pipe() will break. 4) Open a new PR for socketpair: if the `int * sv' arg is invalid, then the syscall correctly returns -1 and sets errno to EFAULT, but two garbage socket descriptors are created. 5) Open a new PR for pipe: if the `int *fildes' arg is invalid, then the syscall doesn't return -1 or set errno to EFAULT; it generates a SIGSEGV. Bruce