Skip site navigation (1)Skip section navigation (2)
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>