Improve formatting, no code change

svn path=/trunk/; revision=53736
This commit is contained in:
Timo Kreuzer 2011-09-18 15:10:05 +00:00
parent ba37ccaf01
commit ba2b3c872a

View file

@ -14,14 +14,15 @@
/* FUNCTIONS ***************************************************************/ /* FUNCTIONS ***************************************************************/
BOOLEAN NTAPI BOOLEAN
RtlFirstFreeAce(PACL Acl, NTAPI
RtlFirstFreeAce(
PACL Acl,
PACE* Ace) PACE* Ace)
{ {
PACE Current; PACE Current;
ULONG_PTR AclEnd; ULONG_PTR AclEnd;
ULONG i; ULONG i;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
Current = (PACE)(Acl + 1); Current = (PACE)(Acl + 1);
@ -30,7 +31,7 @@ RtlFirstFreeAce(PACL Acl,
if (Acl->AceCount == 0) if (Acl->AceCount == 0)
{ {
*Ace = Current; *Ace = Current;
return(TRUE); return TRUE;
} }
i = 0; i = 0;
@ -39,12 +40,12 @@ RtlFirstFreeAce(PACL Acl,
{ {
if ((ULONG_PTR)Current >= AclEnd) if ((ULONG_PTR)Current >= AclEnd)
{ {
return(FALSE); return FALSE;
} }
if (Current->Header.AceType == ACCESS_ALLOWED_COMPOUND_ACE_TYPE && if (Current->Header.AceType == ACCESS_ALLOWED_COMPOUND_ACE_TYPE &&
Acl->AclRevision < ACL_REVISION3) Acl->AclRevision < ACL_REVISION3)
{ {
return(FALSE); return FALSE;
} }
Current = (PACE)((ULONG_PTR)Current + Current->Header.AceSize); Current = (PACE)((ULONG_PTR)Current + Current->Header.AceSize);
} }
@ -55,27 +56,28 @@ RtlFirstFreeAce(PACL Acl,
*Ace = Current; *Ace = Current;
} }
return(TRUE); return TRUE;
} }
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlGetAce(PACL Acl, NTAPI
RtlGetAce(
PACL Acl,
ULONG AceIndex, ULONG AceIndex,
PVOID *Ace) PVOID *Ace)
{ {
ULONG i; ULONG i;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
if (Acl->AclRevision < MIN_ACL_REVISION || if (Acl->AclRevision < MIN_ACL_REVISION ||
Acl->AclRevision > MAX_ACL_REVISION || Acl->AclRevision > MAX_ACL_REVISION ||
AceIndex >= Acl->AceCount) AceIndex >= Acl->AceCount)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
*Ace = (PVOID)((PACE)(Acl + 1)); *Ace = (PVOID)((PACE)(Acl + 1));
@ -84,22 +86,24 @@ RtlGetAce(PACL Acl,
{ {
if ((ULONG_PTR)*Ace >= (ULONG_PTR)Acl + Acl->AclSize) if ((ULONG_PTR)*Ace >= (ULONG_PTR)Acl + Acl->AclSize)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
*Ace = (PVOID)((PACE)((ULONG_PTR)(*Ace) + ((PACE)(*Ace))->Header.AceSize)); *Ace = (PVOID)((PACE)((ULONG_PTR)(*Ace) + ((PACE)(*Ace))->Header.AceSize));
} }
if ((ULONG_PTR)*Ace >= (ULONG_PTR)Acl + Acl->AclSize) if ((ULONG_PTR)*Ace >= (ULONG_PTR)Acl + Acl->AclSize)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
return(STATUS_SUCCESS); return STATUS_SUCCESS;
} }
static NTSTATUS static
RtlpAddKnownAce (PACL Acl, NTSTATUS
RtlpAddKnownAce(
PACL Acl,
ULONG Revision, ULONG Revision,
ULONG Flags, ULONG Flags,
ACCESS_MASK AccessMask, ACCESS_MASK AccessMask,
@ -112,7 +116,6 @@ RtlpAddKnownAce (PACL Acl,
PSID SidStart; PSID SidStart;
ULONG AceSize, InvalidFlags; ULONG AceSize, InvalidFlags;
ULONG AceObjectFlags = 0; ULONG AceObjectFlags = 0;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
#if DBG #if DBG
@ -139,7 +142,7 @@ RtlpAddKnownAce (PACL Acl,
if (!RtlValidSid(Sid)) if (!RtlValidSid(Sid))
{ {
return(STATUS_INVALID_SID); return STATUS_INVALID_SID;
} }
if (Type == SYSTEM_MANDATORY_LABEL_ACE_TYPE) if (Type == SYSTEM_MANDATORY_LABEL_ACE_TYPE)
@ -158,8 +161,9 @@ RtlpAddKnownAce (PACL Acl,
if (Acl->AclRevision > MAX_ACL_REVISION || if (Acl->AclRevision > MAX_ACL_REVISION ||
Revision > MAX_ACL_REVISION) Revision > MAX_ACL_REVISION)
{ {
return(STATUS_UNKNOWN_REVISION); return STATUS_UNKNOWN_REVISION;
} }
if (Revision < Acl->AclRevision) if (Revision < Acl->AclRevision)
{ {
Revision = Acl->AclRevision; Revision = Acl->AclRevision;
@ -180,16 +184,16 @@ RtlpAddKnownAce (PACL Acl,
if (InvalidFlags != 0) if (InvalidFlags != 0)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
if (!RtlFirstFreeAce(Acl, &Ace)) if (!RtlFirstFreeAce(Acl, &Ace))
{ {
return(STATUS_INVALID_ACL); return STATUS_INVALID_ACL;
} }
if (Ace == NULL) if (Ace == NULL)
{ {
return(STATUS_ALLOTTED_SPACE_EXCEEDED); return STATUS_ALLOTTED_SPACE_EXCEEDED;
} }
/* Calculate the size of the ACE */ /* Calculate the size of the ACE */
@ -215,7 +219,7 @@ RtlpAddKnownAce (PACL Acl,
if ((ULONG_PTR)Ace + AceSize > if ((ULONG_PTR)Ace + AceSize >
(ULONG_PTR)Acl + Acl->AclSize) (ULONG_PTR)Acl + Acl->AclSize)
{ {
return(STATUS_ALLOTTED_SPACE_EXCEEDED); return STATUS_ALLOTTED_SPACE_EXCEEDED;
} }
/* initialize the header and common fields */ /* initialize the header and common fields */
@ -237,41 +241,38 @@ RtlpAddKnownAce (PACL Acl,
/* copy the GUIDs */ /* copy the GUIDs */
if (ObjectTypeGuid != NULL) if (ObjectTypeGuid != NULL)
{ {
RtlCopyMemory(SidStart, RtlCopyMemory(SidStart, ObjectTypeGuid, sizeof(GUID));
ObjectTypeGuid,
sizeof(GUID));
SidStart = (PSID)((ULONG_PTR)SidStart + sizeof(GUID)); SidStart = (PSID)((ULONG_PTR)SidStart + sizeof(GUID));
} }
if (InheritedObjectTypeGuid != NULL) if (InheritedObjectTypeGuid != NULL)
{ {
RtlCopyMemory(SidStart, RtlCopyMemory(SidStart, InheritedObjectTypeGuid, sizeof(GUID));
InheritedObjectTypeGuid,
sizeof(GUID));
SidStart = (PSID)((ULONG_PTR)SidStart + sizeof(GUID)); SidStart = (PSID)((ULONG_PTR)SidStart + sizeof(GUID));
} }
/* copy the SID */ /* copy the SID */
RtlCopySid(RtlLengthSid(Sid), RtlCopySid(RtlLengthSid(Sid), SidStart, Sid);
SidStart,
Sid);
Acl->AceCount++; Acl->AceCount++;
Acl->AclRevision = Revision; Acl->AclRevision = Revision;
return(STATUS_SUCCESS);
return STATUS_SUCCESS;
} }
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAccessAllowedAce (IN OUT PACL Acl, NTAPI
RtlAddAccessAllowedAce(
IN OUT PACL Acl,
IN ULONG Revision, IN ULONG Revision,
IN ACCESS_MASK AccessMask, IN ACCESS_MASK AccessMask,
IN PSID Sid) IN PSID Sid)
{ {
PAGED_CODE_RTL(); PAGED_CODE_RTL();
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
0, 0,
AccessMask, AccessMask,
@ -285,8 +286,10 @@ RtlAddAccessAllowedAce (IN OUT PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAccessAllowedAceEx (IN OUT PACL Acl, NTAPI
RtlAddAccessAllowedAceEx(
IN OUT PACL Acl,
IN ULONG Revision, IN ULONG Revision,
IN ULONG Flags, IN ULONG Flags,
IN ACCESS_MASK AccessMask, IN ACCESS_MASK AccessMask,
@ -294,7 +297,7 @@ RtlAddAccessAllowedAceEx (IN OUT PACL Acl,
{ {
PAGED_CODE_RTL(); PAGED_CODE_RTL();
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
Flags, Flags,
AccessMask, AccessMask,
@ -308,8 +311,10 @@ RtlAddAccessAllowedAceEx (IN OUT PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAccessAllowedObjectAce (IN OUT PACL Acl, NTAPI
RtlAddAccessAllowedObjectAce(
IN OUT PACL Acl,
IN ULONG Revision, IN ULONG Revision,
IN ULONG Flags, IN ULONG Flags,
IN ACCESS_MASK AccessMask, IN ACCESS_MASK AccessMask,
@ -318,7 +323,6 @@ RtlAddAccessAllowedObjectAce (IN OUT PACL Acl,
IN PSID Sid) IN PSID Sid)
{ {
ULONG Type; ULONG Type;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
/* make sure we call RtlpAddKnownAce correctly */ /* make sure we call RtlpAddKnownAce correctly */
@ -327,7 +331,7 @@ RtlAddAccessAllowedObjectAce (IN OUT PACL Acl,
else else
Type = ACCESS_ALLOWED_ACE_TYPE; Type = ACCESS_ALLOWED_ACE_TYPE;
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
Flags, Flags,
AccessMask, AccessMask,
@ -341,15 +345,17 @@ RtlAddAccessAllowedObjectAce (IN OUT PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAccessDeniedAce (PACL Acl, NTAPI
RtlAddAccessDeniedAce(
PACL Acl,
ULONG Revision, ULONG Revision,
ACCESS_MASK AccessMask, ACCESS_MASK AccessMask,
PSID Sid) PSID Sid)
{ {
PAGED_CODE_RTL(); PAGED_CODE_RTL();
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
0, 0,
AccessMask, AccessMask,
@ -363,8 +369,10 @@ RtlAddAccessDeniedAce (PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAccessDeniedAceEx (IN OUT PACL Acl, NTAPI
RtlAddAccessDeniedAceEx(
IN OUT PACL Acl,
IN ULONG Revision, IN ULONG Revision,
IN ULONG Flags, IN ULONG Flags,
IN ACCESS_MASK AccessMask, IN ACCESS_MASK AccessMask,
@ -372,7 +380,7 @@ RtlAddAccessDeniedAceEx (IN OUT PACL Acl,
{ {
PAGED_CODE_RTL(); PAGED_CODE_RTL();
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
Flags, Flags,
AccessMask, AccessMask,
@ -386,8 +394,10 @@ RtlAddAccessDeniedAceEx (IN OUT PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAccessDeniedObjectAce (IN OUT PACL Acl, NTAPI
RtlAddAccessDeniedObjectAce(
IN OUT PACL Acl,
IN ULONG Revision, IN ULONG Revision,
IN ULONG Flags, IN ULONG Flags,
IN ACCESS_MASK AccessMask, IN ACCESS_MASK AccessMask,
@ -396,7 +406,6 @@ RtlAddAccessDeniedObjectAce (IN OUT PACL Acl,
IN PSID Sid) IN PSID Sid)
{ {
ULONG Type; ULONG Type;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
/* make sure we call RtlpAddKnownAce correctly */ /* make sure we call RtlpAddKnownAce correctly */
@ -405,7 +414,7 @@ RtlAddAccessDeniedObjectAce (IN OUT PACL Acl,
else else
Type = ACCESS_DENIED_ACE_TYPE; Type = ACCESS_DENIED_ACE_TYPE;
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
Flags, Flags,
AccessMask, AccessMask,
@ -416,8 +425,10 @@ RtlAddAccessDeniedObjectAce (IN OUT PACL Acl,
} }
static VOID static
RtlpAddData(PVOID AceList, VOID
RtlpAddData(
PVOID AceList,
ULONG AceListLength, ULONG AceListLength,
PVOID Ace, PVOID Ace,
ULONG Offset) ULONG Offset)
@ -431,9 +442,7 @@ RtlpAddData(PVOID AceList,
if (AceListLength != 0) if (AceListLength != 0)
{ {
RtlCopyMemory(Ace, RtlCopyMemory(Ace, AceList, AceListLength);
AceList,
AceListLength);
} }
} }
@ -441,8 +450,10 @@ RtlpAddData(PVOID AceList,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAce(PACL Acl, NTAPI
RtlAddAce(
PACL Acl,
ULONG AclRevision, ULONG AclRevision,
ULONG StartingIndex, ULONG StartingIndex,
PVOID AceList, PVOID AceList,
@ -452,14 +463,13 @@ RtlAddAce(PACL Acl,
PACE Current; PACE Current;
ULONG NewAceCount; ULONG NewAceCount;
ULONG Index; ULONG Index;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
if (Acl->AclRevision < MIN_ACL_REVISION || if (Acl->AclRevision < MIN_ACL_REVISION ||
Acl->AclRevision > MAX_ACL_REVISION || Acl->AclRevision > MAX_ACL_REVISION ||
!RtlFirstFreeAce(Acl, &Ace)) !RtlFirstFreeAce(Acl, &Ace))
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
if (Acl->AclRevision <= AclRevision) if (Acl->AclRevision <= AclRevision)
@ -469,7 +479,7 @@ RtlAddAce(PACL Acl,
if (((ULONG_PTR)AceList + AceListLength) <= (ULONG_PTR)AceList) if (((ULONG_PTR)AceList + AceListLength) <= (ULONG_PTR)AceList)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
for (Current = AceList, NewAceCount = 0; for (Current = AceList, NewAceCount = 0;
@ -480,14 +490,14 @@ RtlAddAce(PACL Acl,
if (((PACE)AceList)->Header.AceType == ACCESS_ALLOWED_COMPOUND_ACE_TYPE && if (((PACE)AceList)->Header.AceType == ACCESS_ALLOWED_COMPOUND_ACE_TYPE &&
AclRevision < ACL_REVISION3) AclRevision < ACL_REVISION3)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
} }
if (Ace == NULL || if (Ace == NULL ||
((ULONG_PTR)Ace + AceListLength) > ((ULONG_PTR)Acl + Acl->AclSize)) ((ULONG_PTR)Ace + AceListLength) > ((ULONG_PTR)Acl + Acl->AclSize))
{ {
return(STATUS_BUFFER_TOO_SMALL); return STATUS_BUFFER_TOO_SMALL;
} }
Current = (PACE)(Acl + 1); Current = (PACE)(Acl + 1);
@ -503,15 +513,17 @@ RtlAddAce(PACL Acl,
Acl->AceCount = Acl->AceCount + NewAceCount; Acl->AceCount = Acl->AceCount + NewAceCount;
Acl->AclRevision = AclRevision; Acl->AclRevision = AclRevision;
return(STATUS_SUCCESS); return STATUS_SUCCESS;
} }
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAuditAccessAce(PACL Acl, NTAPI
RtlAddAuditAccessAce(
PACL Acl,
ULONG Revision, ULONG Revision,
ACCESS_MASK AccessMask, ACCESS_MASK AccessMask,
PSID Sid, PSID Sid,
@ -519,20 +531,12 @@ RtlAddAuditAccessAce(PACL Acl,
BOOLEAN Failure) BOOLEAN Failure)
{ {
ULONG Flags = 0; ULONG Flags = 0;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
if (Success) if (Success) Flags |= SUCCESSFUL_ACCESS_ACE_FLAG;
{ if (Failure) Flags |= FAILED_ACCESS_ACE_FLAG;
Flags |= SUCCESSFUL_ACCESS_ACE_FLAG;
}
if (Failure) return RtlpAddKnownAce(Acl,
{
Flags |= FAILED_ACCESS_ACE_FLAG;
}
return RtlpAddKnownAce (Acl,
Revision, Revision,
Flags, Flags,
AccessMask, AccessMask,
@ -546,8 +550,10 @@ RtlAddAuditAccessAce(PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAuditAccessAceEx(PACL Acl, NTAPI
RtlAddAuditAccessAceEx(
PACL Acl,
ULONG Revision, ULONG Revision,
ULONG Flags, ULONG Flags,
ACCESS_MASK AccessMask, ACCESS_MASK AccessMask,
@ -555,17 +561,10 @@ RtlAddAuditAccessAceEx(PACL Acl,
BOOLEAN Success, BOOLEAN Success,
BOOLEAN Failure) BOOLEAN Failure)
{ {
if (Success) if (Success) Flags |= SUCCESSFUL_ACCESS_ACE_FLAG;
{ if (Failure) Flags |= FAILED_ACCESS_ACE_FLAG;
Flags |= SUCCESSFUL_ACCESS_ACE_FLAG;
}
if (Failure) return RtlpAddKnownAce(Acl,
{
Flags |= FAILED_ACCESS_ACE_FLAG;
}
return RtlpAddKnownAce (Acl,
Revision, Revision,
Flags, Flags,
AccessMask, AccessMask,
@ -579,8 +578,10 @@ RtlAddAuditAccessAceEx(PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddAuditAccessObjectAce(PACL Acl, NTAPI
RtlAddAuditAccessObjectAce(
PACL Acl,
ULONG Revision, ULONG Revision,
ULONG Flags, ULONG Flags,
ACCESS_MASK AccessMask, ACCESS_MASK AccessMask,
@ -608,7 +609,7 @@ RtlAddAuditAccessObjectAce(PACL Acl,
else else
Type = SYSTEM_AUDIT_ACE_TYPE; Type = SYSTEM_AUDIT_ACE_TYPE;
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
Flags, Flags,
AccessMask, AccessMask,
@ -622,8 +623,10 @@ RtlAddAuditAccessObjectAce(PACL Acl,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlAddMandatoryAce(IN OUT PACL Acl, NTAPI
RtlAddMandatoryAce(
IN OUT PACL Acl,
IN ULONG Revision, IN ULONG Revision,
IN ULONG Flags, IN ULONG Flags,
IN ULONG MandatoryFlags, IN ULONG MandatoryFlags,
@ -636,7 +639,7 @@ RtlAddMandatoryAce(IN OUT PACL Acl,
if (AceType != SYSTEM_MANDATORY_LABEL_ACE_TYPE) if (AceType != SYSTEM_MANDATORY_LABEL_ACE_TYPE)
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
return RtlpAddKnownAce (Acl, return RtlpAddKnownAce(Acl,
Revision, Revision,
Flags, Flags,
(ACCESS_MASK)MandatoryFlags, (ACCESS_MASK)MandatoryFlags,
@ -647,8 +650,10 @@ RtlAddMandatoryAce(IN OUT PACL Acl,
} }
static VOID static
RtlpDeleteData(PVOID Ace, VOID
RtlpDeleteData(
PVOID Ace,
ULONG AceSize, ULONG AceSize,
ULONG Offset) ULONG Offset)
{ {
@ -661,8 +666,7 @@ RtlpDeleteData(PVOID Ace,
if (Offset - AceSize < Offset) if (Offset - AceSize < Offset)
{ {
RtlZeroMemory((PVOID)((ULONG_PTR)Ace + Offset - AceSize), RtlZeroMemory((PVOID)((ULONG_PTR)Ace + Offset - AceSize), AceSize);
AceSize);
} }
} }
@ -670,13 +674,14 @@ RtlpDeleteData(PVOID Ace,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlDeleteAce(PACL Acl, NTAPI
RtlDeleteAce(
PACL Acl,
ULONG AceIndex) ULONG AceIndex)
{ {
PACE Ace; PACE Ace;
PACE Current; PACE Current;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
if (Acl->AclRevision < MIN_ACL_REVISION || if (Acl->AclRevision < MIN_ACL_REVISION ||
@ -684,7 +689,7 @@ RtlDeleteAce(PACL Acl,
Acl->AceCount <= AceIndex || Acl->AceCount <= AceIndex ||
!RtlFirstFreeAce(Acl, &Ace)) !RtlFirstFreeAce(Acl, &Ace))
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
Current = (PACE)(Acl + 1); Current = (PACE)(Acl + 1);
@ -699,15 +704,17 @@ RtlDeleteAce(PACL Acl,
(ULONG)((ULONG_PTR)Ace - (ULONG_PTR)Current)); (ULONG)((ULONG_PTR)Ace - (ULONG_PTR)Current));
Acl->AceCount--; Acl->AceCount--;
return(STATUS_SUCCESS); return STATUS_SUCCESS;
} }
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlCreateAcl(PACL Acl, NTAPI
RtlCreateAcl(
PACL Acl,
ULONG AclSize, ULONG AclSize,
ULONG AclRevision) ULONG AclRevision)
{ {
@ -715,14 +722,14 @@ RtlCreateAcl(PACL Acl,
if (AclSize < sizeof(ACL)) if (AclSize < sizeof(ACL))
{ {
return(STATUS_BUFFER_TOO_SMALL); return STATUS_BUFFER_TOO_SMALL;
} }
if (AclRevision < MIN_ACL_REVISION || if (AclRevision < MIN_ACL_REVISION ||
AclRevision > MAX_ACL_REVISION || AclRevision > MAX_ACL_REVISION ||
AclSize > 0xffff) AclSize > 0xffff)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
AclSize = ROUND_UP(AclSize, 4); AclSize = ROUND_UP(AclSize, 4);
@ -732,27 +739,28 @@ RtlCreateAcl(PACL Acl,
Acl->Sbz1 = 0; Acl->Sbz1 = 0;
Acl->Sbz2 = 0; Acl->Sbz2 = 0;
return(STATUS_SUCCESS); return STATUS_SUCCESS;
} }
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI NTSTATUS
RtlQueryInformationAcl(PACL Acl, NTAPI
RtlQueryInformationAcl(
PACL Acl,
PVOID Information, PVOID Information,
ULONG InformationLength, ULONG InformationLength,
ACL_INFORMATION_CLASS InformationClass) ACL_INFORMATION_CLASS InformationClass)
{ {
PACE Ace; PACE Ace;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
if (Acl->AclRevision < MIN_ACL_REVISION || if (Acl->AclRevision < MIN_ACL_REVISION ||
Acl->AclRevision > MAX_ACL_REVISION) Acl->AclRevision > MAX_ACL_REVISION)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
switch (InformationClass) switch (InformationClass)
@ -763,7 +771,7 @@ RtlQueryInformationAcl(PACL Acl,
if (InformationLength < sizeof(ACL_REVISION_INFORMATION)) if (InformationLength < sizeof(ACL_REVISION_INFORMATION))
{ {
return(STATUS_BUFFER_TOO_SMALL); return STATUS_BUFFER_TOO_SMALL;
} }
Info->AclRevision = Acl->AclRevision; Info->AclRevision = Acl->AclRevision;
} }
@ -775,12 +783,12 @@ RtlQueryInformationAcl(PACL Acl,
if (InformationLength < sizeof(ACL_SIZE_INFORMATION)) if (InformationLength < sizeof(ACL_SIZE_INFORMATION))
{ {
return(STATUS_BUFFER_TOO_SMALL); return STATUS_BUFFER_TOO_SMALL;
} }
if (!RtlFirstFreeAce(Acl, &Ace)) if (!RtlFirstFreeAce(Acl, &Ace))
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
Info->AceCount = Acl->AceCount; Info->AceCount = Acl->AceCount;
@ -798,10 +806,10 @@ RtlQueryInformationAcl(PACL Acl,
break; break;
default: default:
return(STATUS_INVALID_INFO_CLASS); return STATUS_INVALID_INFO_CLASS;
} }
return(STATUS_SUCCESS); return STATUS_SUCCESS;
} }
@ -819,7 +827,7 @@ RtlSetInformationAcl(PACL Acl,
if (Acl->AclRevision < MIN_ACL_REVISION || if (Acl->AclRevision < MIN_ACL_REVISION ||
Acl->AclRevision > MAX_ACL_REVISION) Acl->AclRevision > MAX_ACL_REVISION)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
switch (InformationClass) switch (InformationClass)
@ -830,12 +838,12 @@ RtlSetInformationAcl(PACL Acl,
if (InformationLength < sizeof(ACL_REVISION_INFORMATION)) if (InformationLength < sizeof(ACL_REVISION_INFORMATION))
{ {
return(STATUS_BUFFER_TOO_SMALL); return STATUS_BUFFER_TOO_SMALL;
} }
if (Acl->AclRevision >= Info->AclRevision) if (Acl->AclRevision >= Info->AclRevision)
{ {
return(STATUS_INVALID_PARAMETER); return STATUS_INVALID_PARAMETER;
} }
Acl->AclRevision = Info->AclRevision; Acl->AclRevision = Info->AclRevision;
@ -843,22 +851,22 @@ RtlSetInformationAcl(PACL Acl,
break; break;
default: default:
return(STATUS_INVALID_INFO_CLASS); return STATUS_INVALID_INFO_CLASS;
} }
return(STATUS_SUCCESS); return STATUS_SUCCESS;
} }
/* /*
* @implemented * @implemented
*/ */
BOOLEAN NTAPI BOOLEAN
RtlValidAcl (PACL Acl) NTAPI
RtlValidAcl(PACL Acl)
{ {
PACE Ace; PACE Ace;
USHORT Size; USHORT Size;
PAGED_CODE_RTL(); PAGED_CODE_RTL();
Size = ROUND_UP(Acl->AclSize, 4); Size = ROUND_UP(Acl->AclSize, 4);
@ -866,15 +874,15 @@ RtlValidAcl (PACL Acl)
if (Acl->AclRevision < MIN_ACL_REVISION || if (Acl->AclRevision < MIN_ACL_REVISION ||
Acl->AclRevision > MAX_ACL_REVISION) Acl->AclRevision > MAX_ACL_REVISION)
{ {
return(FALSE); return FALSE;
} }
if (Size != Acl->AclSize) if (Size != Acl->AclSize)
{ {
return(FALSE); return FALSE;
} }
return(RtlFirstFreeAce(Acl, &Ace)); return RtlFirstFreeAce(Acl, &Ace);
} }
/* EOF */ /* EOF */