File 0001-advapi32-Add-ACL-details-to-GetEffectiveRightsFromAc.patch of Package wine

From 988e7519387be2ad32c48507a63f8ce20bb5087a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Thu, 1 Jan 2026 21:19:46 +0100
Subject: [PATCH 1/2] advapi32: Add ACL details to GetEffectiveRightsFromAcl
 trace

---
 dlls/advapi32/security.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index d9a8b6832cd..b911485eb2a 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -263,10 +263,46 @@ BOOL ADVAPI_GetComputerSid(PSID sid)
     return TRUE;
 }
 
+static void dumpAcl( PACL pacl )
+{
+    TRACE("ACL Rev: %d Size: %d ACE Count: %d\n", pacl->AclRevision,
+        pacl->AclSize, pacl->AceCount);
+
+    for (int i = 0; i < pacl->AceCount; i++)
+    {
+        ACE_HEADER *ace;
+        NTSTATUS status = RtlGetAce(pacl, i, (void**)&ace);
+        if (status) return;
+
+        switch (ace->AceType)
+        {
+            case ACCESS_ALLOWED_ACE_TYPE:
+            {
+                ACCESS_ALLOWED_ACE *allow = (ACCESS_ALLOWED_ACE *)ace;
+                TRACE("  ACE Allowed: Flags: %0X Mask: %08lX\n", ace->AceFlags, allow->Mask);
+                break;
+            }
+
+            case ACCESS_DENIED_ACE_TYPE:
+            {
+                ACCESS_DENIED_ACE *deny = (ACCESS_DENIED_ACE *)ace;
+                TRACE("  ACE Denied:  Flags: %0X Mask: %08lX\n", ace->AceFlags, deny->Mask);
+                break;
+            }
+
+            default:
+                FIXME("Unhandled ace type %d\n", ace->AceType);
+        }
+    }
+}
+
 DWORD WINAPI
 GetEffectiveRightsFromAclA( PACL pacl, PTRUSTEEA pTrustee, PACCESS_MASK pAccessRights )
 {
     FIXME("%p %p %p - stub\n", pacl, pTrustee, pAccessRights);
+    dumpAcl(pacl);
+    TRACE("  Trustee Form: %d Type: %d %s\n", pTrustee->TrusteeForm,
+        pTrustee->TrusteeType, debugstr_a(pTrustee->ptstrName));
 
     *pAccessRights = STANDARD_RIGHTS_ALL | SPECIFIC_RIGHTS_ALL;
     return 0;
@@ -276,6 +312,9 @@ DWORD WINAPI
 GetEffectiveRightsFromAclW( PACL pacl, PTRUSTEEW pTrustee, PACCESS_MASK pAccessRights )
 {
     FIXME("%p %p %p - stub\n", pacl, pTrustee, pAccessRights);
+    dumpAcl(pacl);
+    TRACE("  Trustee Form: %d Type: %d %s\n", pTrustee->TrusteeForm,
+        pTrustee->TrusteeType, debugstr_w(pTrustee->ptstrName));
 
     return 1;
 }
-- 
2.52.0

openSUSE Build Service is sponsored by