git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 0/1] Brown-bag fix on top of js/mingw-inherit-only-std-handles

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Nov 29, 2019, 21:44 UTC
Message-ID
<pull.480.git.1575063876.gitgitgadget@gmail.com>

Johannes "Hannes" Sixt pointed out that this patch series (which already made it to next) introduces a problem: when falling back to spawning the process without restricting the file handles, errno is not set accurately.

Sadly, the regression test failure observed by Hannes did not show up over here, nor in the PR builds (or, for that matter, the literally hundreds of CI builds that patch series underwent as part of Git for Windows' master branch). The cause was that errno is set to the expected ENOENT by another part of the code, too, that happens right before the calls to CreateProcessW(): the test whether a given path refers to a script that needs to be executed via an interpreter (such as sh.exe) obviously needs to open the file, and that obviously fails, setting errno = ENOENT!

I have currently no idea what function call could be responsible for re-setting errno to the reported ERANGE... But at least over here, when I partially apply this patch, the part that sets errno = 0;, t0061.2 fails for me, too.

Johannes Schindelin (1):
  mingw: do set `errno` correctly when trying to restrict handle
    inheritance
 compat/mingw.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
base-commit: ac33519ddfa818f420b4ef5a09b4a7b3ac8adeb8
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-480%2Fdscho%2Fmingw-inherit-only-std-handles-set-errno-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-480/dscho/mingw-inherit-only-std-handles-set-errno-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/480
-- 
gitgitgadget
Next: Johannes Schindelin via GitGitGadget
Message 1 of 27 in “Brown-bag fix on top of js/mingw-inherit-only-std-handles”
  1. 0/1 Brown-bag fix on top of js/mingw-inherit-only-std-handlesJohannes Schindelin via GitGitGadget, Nov 29, 2019
  2. 1/1 mingw: do set `errno` correctly when trying to restrict handle inheritanceJohannes Schindelin via GitGitGadget, Nov 29, 2019
  3. Johannes SixtNov 29, 2019
  4. Johannes SchindelinNov 30, 2019
  5. Johannes SixtNov 30, 2019
  6. 0/2 Brown-bag fix on top of js/mingw-inherit-only-std-handlesJohannes Schindelin via GitGitGadget, Nov 30, 2019
  7. 1/2 mingw: do set `errno` correctly when trying to restrict handle inheritanceJohannes Schindelin via GitGitGadget, Nov 30, 2019
  8. 2/2 mingw: translate ERROR_SUCCESS to errno = 0Johannes Schindelin via GitGitGadget, Nov 30, 2019
  9. Junio C HamanoNov 30, 2019
  10. Johannes SixtNov 30, 2019
  11. Andreas SchwabNov 30, 2019
  12. Junio C HamanoNov 30, 2019
  13. Andreas SchwabNov 30, 2019
  14. Johannes SchindelinNov 30, 2019
  15. Junio C HamanoNov 30, 2019
  16. Junio C HamanoDec 1, 2019
  17. Johannes SchindelinDec 1, 2019
  18. Junio C HamanoDec 2, 2019
  19. Johannes SchindelinDec 2, 2019
  20. Johannes SixtNov 30, 2019
  21. Junio C HamanoNov 30, 2019
  22. 0/2 Brown-bag fix on top of js/mingw-inherit-only-std-handlesJohannes Schindelin via GitGitGadget, Dec 2, 2019
  23. 2/2 mingw: translate ERROR_SUCCESS to errno = 0Johannes Schindelin via GitGitGadget, Dec 2, 2019
  24. 1/2 mingw: do set `errno` correctly when trying to restrict handle inheritanceJohannes Schindelin via GitGitGadget, Dec 2, 2019
  25. Johannes SixtDec 2, 2019
  26. Junio C HamanoDec 2, 2019
  27. Johannes SchindelinDec 3, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.