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