[PATCH] please review. file descriptor passing for libc_r.
Alfred Perlstein
bright at mu.org
Sat Nov 29 21:51:55 PST 2003
Seems like a good diff.
* Daniel Eischen <eischen at vigrid.com> [031129 21:41] wrote:
>
> You should just call close() if the fd has not been initialized.
>
> Index: uthread_close.c
> ===================================================================
> RCS file: /opt/FreeBSD/cvs/src/lib/libc_r/uthread/uthread_close.c,v
> retrieving revision 1.16
> diff -u -r1.16 uthread_close.c
> --- uthread_close.c 9 Jun 2003 16:45:37 -0000 1.16
> +++ uthread_close.c 30 Nov 2003 09:05:52 -0000
> @@ -50,8 +50,7 @@
> struct fd_table_entry *entry;
>
> if ((fd < 0) || (fd >= _thread_dtablesize) ||
> - (fd == _thread_kern_pipe[0]) || (fd == _thread_kern_pipe[1]) ||
> - (_thread_fd_table[fd] == NULL)) {
> + (fd == _thread_kern_pipe[0]) || (fd == _thread_kern_pipe[1])) {
> /*
> * Don't allow silly programs to close the kernel pipe
> * and non-active descriptors.
> @@ -59,6 +58,8 @@
> errno = EBADF;
> ret = -1;
> }
> + else if (_thread_fd_table[fd] == NULL)
> + ret = __sys_close(fd);
> /*
> * Lock the file descriptor while the file is closed and get
> * the file descriptor status:
>
> --
> Dan Eischen
--
- Alfred Perlstein
- Research Engineering Development Inc.
- email: bright at mu.org cell: 408-480-4684
More information about the freebsd-current
mailing list