Crash on MSYS2 with GIT_WORK_TREE
- From
- valtron <valtron2000@gmail.com>
- Date
- Mar 7, 2017, 21:28 UTC
- Message-ID
- <CAFKRc7y_kpCGNORENUZ2qw_4qBwjjyaaDFxAEQa52fTryj+w7A@mail.gmail.com>
Git 1.12.0. When GIT_WORK_TREE contains a drive-letter and forward-slashes, some git commands crash:
C:\repo>set GIT_WORK_TREE=C:/repo
C:\repo>git rev-parse HEAD
1 [main] git 2332 cygwin_exception::open_stackdumpfile: Dumping
stack trace to git.exe.stackdump
C:\repo>set GIT_WORK_TREE=
C:\repo>git rev-parse HEAD
a394e40861e1012a96f9578a1f0cf0c5a49ede11On the other hand, "C:\repo" and "/c/repo" don't have this issue.
Stacktrace from GDB (on git-rev-parse) is:
#0 0x000000018019634d in strcmp (s1=0x600062080 "/c/repo", s2=0x0) at /msys_scripts/msys2-runtime/src/msys2-runtime/newlib/libc/string/strcmp.c:83 #1 0x00000001005239f1 in ?? () #2 0x0000000100523f36 in ?? () #3 0x000000010046c6fa in ?? () #4 0x0000000100401b6d in ?? () #5 0x0000000100401e4b in ?? () #6 0x0000000100563593 in ?? () #7 0x0000000180047c37 in _cygwin_exit_return () at /msys_scripts/msys2-runtime/src/msys2-runtime/winsup/cygwin/dcrt0.cc:1031 #8 0x0000000180045873 in _cygtls::call2 (this=0xffffce00, func=0x180046bd0 <dll_crt0_1(void*)>, arg=0x0, buf=buf@entry=0xffffcdf0) at /msys_scripts/msys2-runtime/src/msys2-runtime/winsup/cygwin/cygtls.cc:40 #9 0x0000000180045924 in _cygtls::call (func=<optimized out>, arg=<optimized out>) at /msys_scripts/msys2-runtime/src/msys2-runtime/winsup/cygwin/cygtls.cc:27 #10 0x0000000000000000 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?)
It seems "C:/repo" was changed to "/c/repo", but it crashes because it gets compared to a nullptr.