Skip to content

Commit e782f50

Browse files
authored
Merge pull request #2725 from native-api/homedir_seclogons
Ignore Vista+ HOMEDRIVE/HOMEPATH default for non-shell logons
2 parents 8209d43 + 064718e commit e782f50

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

compat/mingw.c

+14-1
Original file line numberDiff line numberDiff line change
@@ -3289,6 +3289,18 @@ static size_t append_system_bin_dirs(char *path, size_t size)
32893289
}
32903290
#endif
32913291

3292+
static int is_system32_path(const char *path)
3293+
{
3294+
WCHAR system32[MAX_LONG_PATH], wpath[MAX_LONG_PATH];
3295+
3296+
if (xutftowcs_long_path(wpath, path) < 0 ||
3297+
!GetSystemDirectoryW(system32, ARRAY_SIZE(system32)) ||
3298+
_wcsicmp(system32, wpath))
3299+
return 0;
3300+
3301+
return 1;
3302+
}
3303+
32923304
static void setup_windows_environment(void)
32933305
{
32943306
char *tmp = getenv("TMPDIR");
@@ -3329,7 +3341,8 @@ static void setup_windows_environment(void)
33293341
strbuf_addstr(&buf, tmp);
33303342
if ((tmp = getenv("HOMEPATH"))) {
33313343
strbuf_addstr(&buf, tmp);
3332-
if (is_directory(buf.buf))
3344+
if (!is_system32_path(buf.buf) &&
3345+
is_directory(buf.buf))
33333346
setenv("HOME", buf.buf, 1);
33343347
else
33353348
tmp = NULL; /* use $USERPROFILE */

0 commit comments

Comments
 (0)