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);
 }