From: Junio C Hamano Date: Sat, 30 Nov 2019 18:04:29 GMT Subject: Re: [PATCH v2 0/2] Brown-bag fix on top of js/mingw-inherit-only-std-handles Message-ID: In-Reply-To: "Johannes Schindelin via GitGitGadget" writes: > * We now assign errno only when the call to CreateProcessW() failed. Meaning the global variable 'errno' is left as it was (instead of getting cleared) when a system call succeeds? That I think is the correct behaviour people who use the variable expect. > * For good measure, we teach the err_win_to_posix() function to translate > ERROR_SUCCESS into the errno value 0. So, I am not sure if this is a good idea---who are the callers of this function and why do they call it? I would imagine that a caller who makes a system call, upon seeing a failure from the system call, calls this helper with the Windows error code it received from the system call so that errno can be updated with a POSIXy value. If my imagination is correct, such a caller should not be assigning anything to errno if the underlying system call succeeds, i.e. returns ERROR_SUCCESS. So a better solution might be for the function to BUG() when fed ERROR_SUCCESS to point fingers at the caller, no? If my imagination is not correct, then ignore the whole paragraph above ;-). Thanks.