Module: wine Branch: master Commit: 88414d0c5b6352fd352b1f950033eb033961ee21 URL: https://gitlab.winehq.org/wine/wine/-/commit/88414d0c5b6352fd352b1f950033eb0...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Jun 14 11:40:12 2024 +0200
ntdll: Move some security Rtl functions to sec.c.
---
dlls/ntdll/rtl.c | 133 ------------------------------------------------------- dlls/ntdll/sec.c | 54 ++++++++++++++++++++++ 2 files changed, 54 insertions(+), 133 deletions(-)
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index 948412071c5..fb51ee867b9 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -761,139 +761,6 @@ ULONG WINAPI RtlRandomEx( ULONG *seed ) return RtlRandom( seed ); }
-/************************************************************************* - * RtlAreAllAccessesGranted [NTDLL.@] - * - * Check if all desired accesses are granted - * - * RETURNS - * TRUE: All desired accesses are granted - * FALSE: Otherwise - */ -BOOLEAN WINAPI RtlAreAllAccessesGranted( - ACCESS_MASK GrantedAccess, - ACCESS_MASK DesiredAccess) -{ - return (GrantedAccess & DesiredAccess) == DesiredAccess; -} - - -/************************************************************************* - * RtlAreAnyAccessesGranted [NTDLL.@] - * - * Check if at least one of the desired accesses is granted - * - * PARAMS - * GrantedAccess [I] Access mask of granted accesses - * DesiredAccess [I] Access mask of desired accesses - * - * RETURNS - * TRUE: At least one of the desired accesses is granted - * FALSE: Otherwise - */ -BOOLEAN WINAPI RtlAreAnyAccessesGranted( - ACCESS_MASK GrantedAccess, - ACCESS_MASK DesiredAccess) -{ - return (GrantedAccess & DesiredAccess) != 0; -} - - -/************************************************************************* - * RtlMapGenericMask [NTDLL.@] - * - * Determine the nongeneric access rights specified by an access mask - * - * RETURNS - * Nothing. - */ -void WINAPI RtlMapGenericMask( - PACCESS_MASK AccessMask, - const GENERIC_MAPPING *GenericMapping) -{ - if (*AccessMask & GENERIC_READ) { - *AccessMask |= GenericMapping->GenericRead; - } /* if */ - - if (*AccessMask & GENERIC_WRITE) { - *AccessMask |= GenericMapping->GenericWrite; - } /* if */ - - if (*AccessMask & GENERIC_EXECUTE) { - *AccessMask |= GenericMapping->GenericExecute; - } /* if */ - - if (*AccessMask & GENERIC_ALL) { - *AccessMask |= GenericMapping->GenericAll; - } /* if */ - - *AccessMask &= 0x0FFFFFFF; -} - - -/************************************************************************* - * RtlCopyLuid [NTDLL.@] - * - * Copy a local unique ID. - * - * PARAMS - * LuidDest [O] Destination for the copied Luid - * LuidSrc [I] Source Luid to copy to LuidDest - * - * RETURNS - * Nothing. - */ -void WINAPI RtlCopyLuid (PLUID LuidDest, const LUID *LuidSrc) -{ - *LuidDest = *LuidSrc; -} - - -/************************************************************************* - * RtlEqualLuid [NTDLL.@] - * - * Compare two local unique IDs. - * - * PARAMS - * Luid1 [I] First Luid to compare to Luid2 - * Luid2 [I] Second Luid to compare to Luid1 - * - * RETURNS - * TRUE: The two LUIDs are equal. - * FALSE: Otherwise - */ -BOOLEAN WINAPI RtlEqualLuid (const LUID *Luid1, const LUID *Luid2) -{ - return (Luid1->LowPart == Luid2->LowPart && Luid1->HighPart == Luid2->HighPart); -} - - -/************************************************************************* - * RtlCopyLuidAndAttributesArray [NTDLL.@] - * - * Copy an array of local unique IDs and attributes. - * - * PARAMS - * Count [I] Number of Luid/attributes in Src - * Src [I] Source Luid/attributes to copy - * Dest [O] Destination for copied Luid/attributes - * - * RETURNS - * Nothing. - * - * NOTES - * Dest must be large enough to hold Src. - */ -void WINAPI RtlCopyLuidAndAttributesArray( - ULONG Count, - const LUID_AND_ATTRIBUTES *Src, - PLUID_AND_ATTRIBUTES Dest) -{ - ULONG i; - - for (i = 0; i < Count; i++) Dest[i] = Src[i]; -} - static BOOL parse_ipv4_component(const WCHAR **str, BOOL strict, ULONG *value) { int base = 10, d; diff --git a/dlls/ntdll/sec.c b/dlls/ntdll/sec.c index 4188faafb4b..2c09e31ac1a 100644 --- a/dlls/ntdll/sec.c +++ b/dlls/ntdll/sec.c @@ -1540,6 +1540,60 @@ NTSTATUS WINAPI RtlGetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce ) return STATUS_SUCCESS; }
+/************************************************************************* + * RtlAreAllAccessesGranted [NTDLL.@] + */ +BOOLEAN WINAPI RtlAreAllAccessesGranted( ACCESS_MASK granted, ACCESS_MASK desired ) +{ + return (granted & desired) == desired; +} + +/************************************************************************* + * RtlAreAnyAccessesGranted [NTDLL.@] + */ +BOOLEAN WINAPI RtlAreAnyAccessesGranted( ACCESS_MASK granted, ACCESS_MASK desired ) +{ + return (granted & desired) != 0; +} + +/************************************************************************* + * RtlMapGenericMask [NTDLL.@] + */ +void WINAPI RtlMapGenericMask( ACCESS_MASK *mask, const GENERIC_MAPPING *mapping ) +{ + if (*mask & GENERIC_READ) *mask |= mapping->GenericRead; + if (*mask & GENERIC_WRITE) *mask |= mapping->GenericWrite; + if (*mask & GENERIC_EXECUTE) *mask |= mapping->GenericExecute; + if (*mask & GENERIC_ALL) *mask |= mapping->GenericAll; + *mask &= ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL); +} + +/************************************************************************* + * RtlCopyLuid [NTDLL.@] + */ +void WINAPI RtlCopyLuid( LUID *dest, const LUID *src ) +{ + *dest = *src; +} + +/************************************************************************* + * RtlEqualLuid [NTDLL.@] + */ +BOOLEAN WINAPI RtlEqualLuid( const LUID *luid1, const LUID *luid2 ) +{ + return (luid1->LowPart == luid2->LowPart && luid1->HighPart == luid2->HighPart); +} + +/************************************************************************* + * RtlCopyLuidAndAttributesArray [NTDLL.@] + */ +void WINAPI RtlCopyLuidAndAttributesArray( ULONG count, const LUID_AND_ATTRIBUTES *src, PLUID_AND_ATTRIBUTES dest ) +{ + ULONG i; + + for (i = 0; i < count; i++) dest[i] = src[i]; +} + /* * misc */