Date: Sat, 29 Jun 1996 17:59:17 +1000 From: Bruce Evans <bde@zeta.org.au> To: current@freebsd.org, terry@lambert.org Cc: witr@rwwa.COM Subject: Re: Problem Report docs/731 Message-ID: <199606290759.RAA29925@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>============================================================================ >*** 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606290759.RAA29925>