Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Nov 2003 13:12:51 -0800
From:      Alfred Perlstein <bright@mu.org>
To:        Daniel Eischen <eischen@vigrid.com>
Cc:        current@freebsd.org
Subject:   Re: [PATCH] please review. file descriptor passing for libc_r.
Message-ID:  <20031129211251.GV35957@elvis.mu.org>
In-Reply-To: <20031129202138.GU35957@elvis.mu.org>
References:  <20031123023649.GG35957@elvis.mu.org> <Pine.GSO.4.10.10311222342030.18080-100000@pcnet5.pcnet.com> <20031129202138.GU35957@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Alfred Perlstein <bright@mu.org> [031129 12:21] wrote:
> 
> Descriptor's passed can't be closed because the uthread kernel does this:

The weird part is that i'm doing a sendfile(2) using the descriptors
and it appears that sendfile does the FD_LOCK thing on the descriptors
so... ?


> 
> int
> _close(int fd)
> {
>         int             flags;
>         int             ret;
>         struct stat     sb;
>         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)) {
>                 /*
>                  * Don't allow silly programs to close the kernel pipe
>                  * and non-active descriptors.
>                  */
>                 errno = EBADF;
>                 ret = -1;
>         }
> ...
> 
> So basically, if the entry is not initialized we can't close descriptors.
> 
> What do you suggest we do?
> 
> -- 
> - Alfred Perlstein
> - Research Engineering Development Inc.
> - email: bright@mu.org cell: 408-480-4684

-- 
- Alfred Perlstein
- Research Engineering Development Inc.
- email: bright@mu.org cell: 408-480-4684



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031129211251.GV35957>