Use 64K buffers for TOKEN_GROUPS

A user token can be up to 64K in size.  Using 32K buffers for TOKEN_GROUPS
may be insufficient.

	* uinfo.cc (get_logon_sid): Use 64K buffers for the TOKEN_GROUPS
	array.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2016-03-23 17:42:04 +01:00
parent 155a1ec5fb
commit fc504453fd
1 changed files with 3 additions and 3 deletions

View File

@ -1462,12 +1462,12 @@ get_logon_sid ()
NTSTATUS status; NTSTATUS status;
ULONG size; ULONG size;
tmp_pathbuf tp; tmp_pathbuf tp;
PTOKEN_GROUPS groups = (PTOKEN_GROUPS) tp.c_get (); PTOKEN_GROUPS groups = (PTOKEN_GROUPS) tp.w_get ();
status = NtQueryInformationToken (hProcToken, TokenGroups, groups, status = NtQueryInformationToken (hProcToken, TokenGroups, groups,
NT_MAX_PATH, &size); 2 * NT_MAX_PATH, &size);
if (!NT_SUCCESS (status)) if (!NT_SUCCESS (status))
debug_printf ("NtQueryInformationToken() %y", status); debug_printf ("NtQueryInformationToken (TokenGroups) %y", status);
else else
{ {
for (DWORD pg = 0; pg < groups->GroupCount; ++pg) for (DWORD pg = 0; pg < groups->GroupCount; ++pg)