On Sat, 29 Nov 2003, Alfred Perlstein wrote:

> * Daniel Eischen <[EMAIL PROTECTED]> [031129 14:57] wrote:
> > > 
> > > What do you suggest we do?
> > 
> > Just close the file:
> > 
> >     if ((fd < 0) || (fd >= _thread_dtablesize) ||
> >         (fd == _thread_kern_pipe[0]) || (fd == _thread_kern_pipe[1])) {
> >             /*
> >              * Don't allow silly programs to close the kernel pipe
> >              * and non-active descriptors.
> >              */
> >             errno = EBADF;
> >             ret = -1;
> >     }
> >     else if (_thread_fd_table[fd] == NULL)
> >             ret = __sys_close(fd);
> >     else {
> >             ...
> >     }
> 
> So remove the check?  do you approve? does re@ approve?

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

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to