On Thu, 4 Sep 2025 14:03:41 GMT, Magnus Ihse Bursie <[email protected]> wrote:
> When calling ExecuteWithLog with a redirection (using > or, possibly, <), the > entire command needs to be executed in a subshell, that is, inside a pair of > parentheses. This is the callers obligation to ensure, but we have proven > multiple times that this is hard to keep in mind, and we got several cases of > race conditions due to missing this. > > This PR changes the implementation of ExecuteWithLog so it checks if the > command line contains redirection, and automatically add the subshell > parentheses in that case. The alternative would have been to always execute > in a subshell, but that would have been very expensive on Windows. This pull request has now been integrated. Changeset: 124fcf1d Author: Magnus Ihse Bursie <[email protected]> URL: https://git.openjdk.org/jdk/commit/124fcf1d9abb6cafe34637ba357617c7c7be56c8 Stats: 41 lines in 5 files changed: 14 ins; 5 del; 22 mod 8233115: Protect ExecuteWithLog from running with redirection without a subshell Reviewed-by: erikj ------------- PR: https://git.openjdk.org/jdk/pull/27096
