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