[NTOS:SE]

- Call SeAssignSecurityEx from SeAssignSecurity
- Fix a FIXME

svn path=/trunk/; revision=65183
This commit is contained in:
Thomas Faber 2014-11-02 15:41:20 +00:00
parent a841fadcaa
commit 760375811e

View file

@ -1134,8 +1134,11 @@ SeValidSecurityDescriptor(IN ULONG Length,
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI _IRQL_requires_max_(PASSIVE_LEVEL)
SeDeassignSecurity(PSECURITY_DESCRIPTOR *SecurityDescriptor) NTSTATUS
NTAPI
SeDeassignSecurity(
_Inout_ PSECURITY_DESCRIPTOR *SecurityDescriptor)
{ {
PAGED_CODE(); PAGED_CODE();
@ -1149,36 +1152,22 @@ SeDeassignSecurity(PSECURITY_DESCRIPTOR *SecurityDescriptor)
} }
/*
* @unimplemented
*/
NTSTATUS NTAPI
SeAssignSecurityEx(IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
IN GUID *ObjectType OPTIONAL,
IN BOOLEAN IsDirectoryObject,
IN ULONG AutoInheritFlags,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN PGENERIC_MAPPING GenericMapping,
IN POOL_TYPE PoolType)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
}
/* /*
* @implemented * @implemented
*/ */
NTSTATUS NTAPI _IRQL_requires_max_(PASSIVE_LEVEL)
SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL, NTSTATUS
PSECURITY_DESCRIPTOR _ExplicitDescriptor OPTIONAL, NTAPI
PSECURITY_DESCRIPTOR *NewDescriptor, SeAssignSecurityEx(
BOOLEAN IsDirectoryObject, _In_opt_ PSECURITY_DESCRIPTOR _ParentDescriptor,
PSECURITY_SUBJECT_CONTEXT SubjectContext, _In_opt_ PSECURITY_DESCRIPTOR _ExplicitDescriptor,
PGENERIC_MAPPING GenericMapping, _Out_ PSECURITY_DESCRIPTOR *NewDescriptor,
POOL_TYPE PoolType) _In_opt_ GUID *ObjectType,
_In_ BOOLEAN IsDirectoryObject,
_In_ ULONG AutoInheritFlags,
_In_ PSECURITY_SUBJECT_CONTEXT SubjectContext,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ POOL_TYPE PoolType)
{ {
PISECURITY_DESCRIPTOR ParentDescriptor = _ParentDescriptor; PISECURITY_DESCRIPTOR ParentDescriptor = _ParentDescriptor;
PISECURITY_DESCRIPTOR ExplicitDescriptor = _ExplicitDescriptor; PISECURITY_DESCRIPTOR ExplicitDescriptor = _ExplicitDescriptor;
@ -1196,6 +1185,11 @@ SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL,
PACL Dacl = NULL; PACL Dacl = NULL;
PACL Sacl = NULL; PACL Sacl = NULL;
DBG_UNREFERENCED_PARAMETER(ObjectType);
DBG_UNREFERENCED_PARAMETER(AutoInheritFlags);
DBG_UNREFERENCED_PARAMETER(GenericMapping);
UNREFERENCED_PARAMETER(PoolType);
PAGED_CODE(); PAGED_CODE();
/* Lock subject context */ /* Lock subject context */
@ -1327,7 +1321,7 @@ SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL,
if (Descriptor == NULL) if (Descriptor == NULL)
{ {
DPRINT1("ExAlloctePool() failed\n"); DPRINT1("ExAlloctePool() failed\n");
/* FIXME: Unlock subject context */ SeUnlockSubjectContext(SubjectContext);
return STATUS_INSUFFICIENT_RESOURCES; return STATUS_INSUFFICIENT_RESOURCES;
} }
@ -1375,10 +1369,38 @@ SeAssignSecurity(PSECURITY_DESCRIPTOR _ParentDescriptor OPTIONAL,
*NewDescriptor = Descriptor; *NewDescriptor = Descriptor;
DPRINT("Descrptor %p\n", Descriptor); DPRINT("Descriptor %p\n", Descriptor);
ASSERT(RtlLengthSecurityDescriptor(Descriptor)); ASSERT(RtlLengthSecurityDescriptor(Descriptor));
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
/*
* @implemented
*/
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSTATUS
NTAPI
SeAssignSecurity(
_In_opt_ PSECURITY_DESCRIPTOR ParentDescriptor,
_In_opt_ PSECURITY_DESCRIPTOR ExplicitDescriptor,
_Out_ PSECURITY_DESCRIPTOR *NewDescriptor,
_In_ BOOLEAN IsDirectoryObject,
_In_ PSECURITY_SUBJECT_CONTEXT SubjectContext,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ POOL_TYPE PoolType)
{
PAGED_CODE();
return SeAssignSecurityEx(ParentDescriptor,
ExplicitDescriptor,
NewDescriptor,
NULL,
IsDirectoryObject,
0,
SubjectContext,
GenericMapping,
PoolType);
}
/* EOF */ /* EOF */