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

Reply via email to