msi: Allocate token information buffer dynamically.
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 13afd92..c3ef72b 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -516,15 +516,19 @@
static void get_user_sid(LPSTR *usersid)
{
HANDLE token;
- BYTE buf[1024];
DWORD size;
PTOKEN_USER user;
OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token);
- size = sizeof(buf);
- GetTokenInformation(token, TokenUser, buf, size, &size);
- user = (PTOKEN_USER)buf;
+
+ size = 0;
+ GetTokenInformation(token, TokenUser, NULL, size, &size);
+ user = HeapAlloc(GetProcessHeap(), 0, size);
+
+ GetTokenInformation(token, TokenUser, user, size, &size);
pConvertSidToStringSidA(user->User.Sid, usersid);
+
+ HeapFree(GetProcessHeap(), 0, user);
CloseHandle(token);
}