9 Aug
2023
9 Aug
'23
1:44 p.m.
Hans Leidekker (@hans) commented about programs/whoami/main.c:
+ return FALSE; }
- result = GetUserNameExW(NameSamCompatible, NULL, &size); - if (result || GetLastError() != ERROR_MORE_DATA) + result = GetUserNameExW(name_format, *name, &size); + if (!result) + { + ERR("GetUserNameExW failed, error %ld\n", GetLastError()); + return FALSE; + } + + return TRUE; +} + +static BOOL get_process_sid(PSID *sid) get_process_sid() could be simplified like this:
static SID *get_process_sid(void)
{
HANDLE token_handle;
DWORD buf[256]; /* GetTokenInformation wants a dword-aligned buffer */
TOKEN_USER *token_user = (TOKEN_USER *)buf;
DWORD token_user_len;
SID *ret;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token_handle)) return NULL;
if (!GetTokenInformation(token_handle, TokenUser, (void *)buf, sizeof(buf), &token_user_len))
{
CloseHandle(token_handle);
return NULL;
}
CloseHandle(token_handle);
token_user_len = GetLengthSid(token_user->User.Sid);
if (!(ret = malloc(token_user_len))) return NULL;
if (CopySid(token_user_len, ret, token_user->User.Sid)) return ret;
free(ret);
return NULL;
}
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3473#note_41799