On Fri, 25 Jul 2025 23:09:48 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> Fix gcc warning about double close. forkedChildProcess() calls 
> closeDescriptors(), which always closes STDERR_FILENO + 1 and STDERR_FILENO + 
> 2. However, if it fails at some point after that, then forkedChildProcess() 
> will attempt to close these same two files again. Fixed by making 
> forkedChildProcess() no longer attempt to close these two files.
> 
> I first verified the warning by configuring with 
> --with-extra-cflags=-fanalyzer, and then verified the fix by doing the same.
> 
> Tested by running jdi nsk test. I'll add some more CI testing.

Looks good to me.

Note that in the official Runtime.exec layer over in libjava, we switched to 
setting the filedescriptors to FD_CLOEXEC, which seems more elegant and 
circumvents this and some other problems.

-------------

Marked as reviewed by stuefe (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/26487#pullrequestreview-3059284460

Reply via email to