On 06/04/2018 22:01, Martin Buchholz wrote:
History:
The design on Unix was that all file descriptors greater than 3 are closed on fork and before exec. But regardless of that, we should try to set the CLOEXEC bit on all our file descriptor (who knows, there might be native code that does fork+exec). File descriptor 3 is indeed deep magic, used for error reporting.  It's a serious bug if FAIL_FILENO ends up being used for something other than the error reporting pipe.
I don't think I'm the last (or the first!) person who touched this.
STDERR_FILENO is 2 so I'm curious which error reporting pipe is bring discussed here. The jimage file is opened very early when initializing the VM so it will get a low file descriptor number, seems to be 3. The only surprise is that it doesn't close as it shouldn't need the file descriptor after it mmapped.

-Alan

Reply via email to