Re: [PATCH v2 0/2] Brown-bag fix on top of js/mingw-inherit-only-std-handles
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 30, 2019, 18:04 UTC
- Message-ID
- <xmqq5zj12qc2.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <pull.480.v2.git.1575110200.gitgitgadget@gmail.com>
"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com> 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.