Skip to content

Commit 6e9616b

Browse files
bmueller84dscho
authored andcommitted
mingw: fix fatal error working on mapped network drives on Windows
In 1e64d18 (mingw: do resolve symlinks in `getcwd()`) a problem was introduced that causes git for Windows to stop working with certain mapped network drives (in particular, drives that are mapped to locations with long path names). Error message was "fatal: Unable to read current working directory: No such file or directory". Present change fixes this issue as discussed in #2480 Signed-off-by: Bjoern Mueller <[email protected]>
1 parent 787bfe4 commit 6e9616b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

compat/mingw.c

+7-2
Original file line numberDiff line numberDiff line change
@@ -1136,8 +1136,13 @@ char *mingw_getcwd(char *pointer, int len)
11361136
return NULL;
11371137
ret = GetFinalPathNameByHandleW(hnd, wpointer, ARRAY_SIZE(wpointer), 0);
11381138
CloseHandle(hnd);
1139-
if (!ret || ret >= ARRAY_SIZE(wpointer))
1140-
return NULL;
1139+
if (!ret || ret >= ARRAY_SIZE(wpointer)) {
1140+
ret = GetLongPathNameW(cwd, wpointer, ARRAY_SIZE(wpointer));
1141+
if (!ret || ret >= ARRAY_SIZE(wpointer)) {
1142+
errno = ret ? ENAMETOOLONG : err_win_to_posix(GetLastError());
1143+
return NULL;
1144+
}
1145+
}
11411146
if (xwcstoutf(pointer, normalize_ntpath(wpointer), len) < 0)
11421147
return NULL;
11431148
return pointer;

0 commit comments

Comments
 (0)