Replace GetOwner helper function with the already existing AccpGetAceSid function and enhance it to also support SYSTEM_MANDATORY_LABEL_ACE_TYPE

svn path=/trunk/; revision=31155
This commit is contained in:
Thomas Bluemel 2007-12-11 17:22:34 +00:00
parent fc12d1bd8e
commit 39103628df

View file

@ -140,6 +140,11 @@ AccpGetAceStructureSize(IN PACE_HEADER AceHeader)
Size += sizeof(Ace->InheritedObjectType);
break;
}
case SYSTEM_MANDATORY_LABEL_ACE_TYPE:
Size = FIELD_OFFSET(SYSTEM_MANDATORY_LABEL_ACE,
SidStart);
break;
}
return Size;
@ -1000,24 +1005,6 @@ GetTrusteeSid(PTRUSTEE Trustee,
}
}
static PSID
GetOwner(PACE_HEADER Ace)
{
switch (Ace->AceType)
{
case ACCESS_ALLOWED_ACE_TYPE:
return (PSID)&((PACCESS_ALLOWED_ACE)Ace)->SidStart;
case ACCESS_DENIED_ACE_TYPE:
return (PSID)&((PACCESS_DENIED_ACE)Ace)->SidStart;
case SYSTEM_AUDIT_ACE_TYPE:
return (PSID)&((PSYSTEM_AUDIT_ACE)Ace)->SidStart;
case SYSTEM_MANDATORY_LABEL_ACE_TYPE:
return (PSID)&((PSYSTEM_MANDATORY_LABEL_ACE)Ace)->SidStart;
default:
DPRINT1("Unknown ACE type 0x%x\n", Ace->AceType);
return NULL;
}
}
/**********************************************************************
* AccRewriteSetEntriesInAcl EXPORTED
@ -1073,7 +1060,7 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
continue;
if (!GetAce(OldAcl, i, (PVOID*)&pAce))
goto cleanup;
pSid2 = GetOwner(pAce);
pSid2 = AccpGetAceSid(pAce);
if (RtlEqualSid(pSid1, pSid2))
{
pKeepAce[i] = FALSE;