Skip to content

Commit bf57c1e

Browse files
bmueller84Git for Windows Build Agent
authored and
Git for Windows Build Agent
committed
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 bfe1fcb commit bf57c1e

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

compat/mingw.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,8 +1273,13 @@ char *mingw_getcwd(char *pointer, int len)
12731273
return NULL;
12741274
ret = GetFinalPathNameByHandleW(hnd, wpointer, ARRAY_SIZE(wpointer), 0);
12751275
CloseHandle(hnd);
1276-
if (!ret || ret >= ARRAY_SIZE(wpointer))
1277-
return NULL;
1276+
if (!ret || ret >= ARRAY_SIZE(wpointer)) {
1277+
ret = GetLongPathNameW(cwd, wpointer, ARRAY_SIZE(wpointer));
1278+
if (!ret || ret >= ARRAY_SIZE(wpointer)) {
1279+
errno = ret ? ENAMETOOLONG : err_win_to_posix(GetLastError());
1280+
return NULL;
1281+
}
1282+
}
12781283
if (xwcstoutf(pointer, normalize_ntpath(wpointer), len) < 0)
12791284
return NULL;
12801285
return pointer;

0 commit comments

Comments
 (0)