cvs commit: src/sys/kern kern_descrip.c
rwatson at FreeBSD.org
Thu May 29 07:56:48 UTC 2008
On Wed, 28 May 2008, Ed Schouten wrote:
> Remove redundant checks from fcntl()'s F_DUPFD.
> Right now we perform some of the checks inside the fcntl()'s F_DUPFD
> operation twice. We first validate the `fd' argument. When finished,
> we validate the `arg' argument. These checks are also performed inside
> The reason we need to do this, is because fcntl() should return different
> errno's when the `arg' argument is out of bounds (EINVAL instead of
> EBADF). To prevent the redundant locking of the PROC_LOCK and
> FILEDESC_SLOCK, patch do_dup() to support the error semantics required
> by fcntl().
This sounds like a good candidate for a regression test -- do we have a
dup/dup2/F_DUPFD/F_DUP2FD test? If not, perhaps we should, in light of the
opportunity for further bugs and regressions.
Robert N M Watson
University of Cambridge
More information about the cvs-src