Merge branch 'js/mingw-use-utf8'
Windows update. * js/mingw-use-utf8: mingw: fix possible buffer overrun when calling `GetUserNameW()` mingw: use Unicode functions explicitly mingw: get pw_name in UTF-8 format
This commit is contained in:
@ -1407,7 +1407,7 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
|
||||
do_unset_environment_variables();
|
||||
|
||||
/* Determine whether or not we are associated to a console */
|
||||
cons = CreateFile("CONOUT$", GENERIC_WRITE,
|
||||
cons = CreateFileW(L"CONOUT$", GENERIC_WRITE,
|
||||
FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
|
||||
FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (cons == INVALID_HANDLE_VALUE) {
|
||||
@ -1949,13 +1949,19 @@ struct passwd *getpwuid(int uid)
|
||||
static unsigned initialized;
|
||||
static char user_name[100];
|
||||
static struct passwd *p;
|
||||
wchar_t buf[100];
|
||||
DWORD len;
|
||||
|
||||
if (initialized)
|
||||
return p;
|
||||
|
||||
len = sizeof(user_name);
|
||||
if (!GetUserName(user_name, &len)) {
|
||||
len = ARRAY_SIZE(buf);
|
||||
if (!GetUserNameW(buf, &len)) {
|
||||
initialized = 1;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (xwcstoutf(user_name, buf, sizeof(user_name)) < 0) {
|
||||
initialized = 1;
|
||||
return NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user