[Patch] PR 31228, Fix close-on-exec race.
David Daney
ddaney@avtrex.com
Tue Mar 20 22:24:00 GMT 2007
Tom Tromey wrote:
>>>>>> "David" == David Daney <ddaney@avtrex.com> writes:
>
> David> Make the accept non-blocking, and do a select/poll on the
> David> ServerSocket. That way the accept would never block and you could use
> David> a mutex.
>
> Yeah. I hadn't thought of the accept case, thanks.
>
> David> This makes me think that ld.so is probably broken also. When we do
> David> dlopen ld.so opens the library file and does several mmaps before
> David> closing the file descriptor. These could leak out as well.
>
> Not to mention other places that libc may create fds.
>
> On some platforms fdwalk(3) can be used to make this close loop more
> efficient. There's also closefrom(3). Linux doesn't seem to have
> either of these, but Solaris does.
>
> Tom
It would be fairly simple to write a linux version of closefrom(3) by
reading /proc/self/fd. I think that may be the best choice.
David Daney.
More information about the Java-patches
mailing list