[PATCH 1/2] faultrep/tests: Drop workarounds for Windows <= 2000

Alex Henrie alexhenrie24 at gmail.com
Sun Jan 2 01:11:43 CST 2022


Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
---
 dlls/faultrep/tests/faultrep.c | 62 ++++------------------------------
 1 file changed, 6 insertions(+), 56 deletions(-)

diff --git a/dlls/faultrep/tests/faultrep.c b/dlls/faultrep/tests/faultrep.c
index d0b30f70cf1..30664bd29be 100644
--- a/dlls/faultrep/tests/faultrep.c
+++ b/dlls/faultrep/tests/faultrep.c
@@ -36,65 +36,15 @@ static const char regpath_exclude[] = "ExclusionList";
 
 static BOOL is_process_limited(void)
 {
-    static BOOL (WINAPI *pCheckTokenMembership)(HANDLE,PSID,PBOOL) = NULL;
-    static BOOL (WINAPI *pOpenProcessToken)(HANDLE, DWORD, PHANDLE) = NULL;
-    SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY};
-    PSID Group;
-    BOOL IsInGroup;
     HANDLE token;
+    TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault;
+    DWORD size;
 
-    if (!pOpenProcessToken)
-    {
-        HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll");
-        pOpenProcessToken = (void*)GetProcAddress(hadvapi32, "OpenProcessToken");
-        pCheckTokenMembership = (void*)GetProcAddress(hadvapi32, "CheckTokenMembership");
-        if (!pCheckTokenMembership || !pOpenProcessToken)
-        {
-            /* Win9x (power to the masses) or NT4 (no way to know) */
-            trace("missing pOpenProcessToken or CheckTokenMembership\n");
-            return FALSE;
-        }
-    }
-
-    if (!AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
-                                  DOMAIN_ALIAS_RID_ADMINS,
-                                  0, 0, 0, 0, 0, 0, &Group) ||
-        !pCheckTokenMembership(NULL, Group, &IsInGroup))
-    {
-        trace("Could not check if the current user is an administrator\n");
-        return FALSE;
-    }
-    FreeSid(Group);
-    if (!IsInGroup)
-    {
-        if (!AllocateAndInitializeSid(&NtAuthority, 2,
-                                      SECURITY_BUILTIN_DOMAIN_RID,
-                                      DOMAIN_ALIAS_RID_POWER_USERS,
-                                      0, 0, 0, 0, 0, 0, &Group) ||
-            !pCheckTokenMembership(NULL, Group, &IsInGroup))
-        {
-            trace("Could not check if the current user is a power user\n");
-            return FALSE;
-        }
-        FreeSid(Group);
-        if (!IsInGroup)
-        {
-            /* Only administrators and power users can be powerful */
-            return TRUE;
-        }
-    }
+    OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token);
+    GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size);
+    CloseHandle(token);
 
-    if (pOpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token))
-    {
-        BOOL ret;
-        TOKEN_ELEVATION_TYPE type = TokenElevationTypeDefault;
-        DWORD size;
-
-        ret = GetTokenInformation(token, TokenElevationType, &type, sizeof(type), &size);
-        CloseHandle(token);
-        return (ret && type == TokenElevationTypeLimited);
-    }
-    return FALSE;
+    return type == TokenElevationTypeLimited;
 }
 
 
-- 
2.34.1




More information about the wine-devel mailing list