-/* $Id: priv.c,v 1.3 2002/02/22 13:36:24 ekohl Exp $
+/* $Id: priv.c,v 1.4 2002/09/07 15:13:06 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
/* INCLUDES *****************************************************************/
-#include <ddk/ntddk.h>
-#include <internal/se.h>
+#include <ntoskrnl.h>
+#define NDEBUG
#include <internal/debug.h>
}
-BOOLEAN SepPrivilegeCheck(PACCESS_TOKEN Token,
+BOOLEAN SepPrivilegeCheck(PIACCESS_TOKEN Token,
PLUID_AND_ATTRIBUTES Privileges,
ULONG PrivilegeCount,
ULONG PrivilegeControl,
KPROCESSOR_MODE PreviousMode)
{
ULONG i;
- PLUID_AND_ATTRIBUTES Current;
+ PLUID_AND_ATTRIBUTES_ARRAY Current;
ULONG j;
ULONG k;
Current = Token->Privileges;
for (i = 0; i < Token->PrivilegeCount; i++)
{
- if (!(Current[i].Attributes & SE_PRIVILEGE_ENABLED) &&
+ if (!(Current[i]->Attributes & SE_PRIVILEGE_ENABLED) &&
Privileges[i].Luid.u.LowPart ==
- Current[i].Luid.u.LowPart &&
+ Current[i]->Luid.u.LowPart &&
Privileges[i].Luid.u.HighPart ==
- Current[i].Luid.u.HighPart)
+ Current[i]->Luid.u.HighPart)
{
Privileges[i].Attributes =
Privileges[i].Attributes |
IN PBOOLEAN Result)
{
NTSTATUS Status;
- PACCESS_TOKEN Token;
+ PIACCESS_TOKEN iToken;
ULONG PrivilegeCount;
BOOLEAN TResult;
ULONG PrivilegeControl;
0,
SepTokenObjectType,
UserMode,
- (PVOID*)&Token,
+ (PVOID*)&iToken,
NULL);
if (!NT_SUCCESS(Status))
{
return(Status);
}
- if (Token->TokenType == TokenImpersonation &&
- Token->ImpersonationLevel < SecurityAnonymous)
+ if (iToken->TokenType == TokenImpersonation &&
+ iToken->ImpersonationLevel < SecurityAnonymous)
{
- ObDereferenceObject(Token);
+ ObDereferenceObject(iToken);
return(STATUS_UNSUCCESSFUL);
}
PrivilegeCount = RequiredPrivileges->PrivilegeCount;
&Length);
if (!NT_SUCCESS(Status))
{
- ObDereferenceObject(Token);
+ ObDereferenceObject(iToken);
return(STATUS_UNSUCCESSFUL);
}
- TResult = SepPrivilegeCheck(Token,
+ TResult = SepPrivilegeCheck(iToken,
Privilege,
PrivilegeCount,
PrivilegeControl,
PSECURITY_SUBJECT_CONTEXT SubjectContext,
KPROCESSOR_MODE PreviousMode)
{
- PACCESS_TOKEN Token = NULL;
+ PIACCESS_TOKEN iToken = NULL;
if (SubjectContext->ClientToken == NULL)
{
- Token = SubjectContext->PrimaryToken;
+ iToken = SubjectContext->PrimaryToken;
}
else
{
- Token = SubjectContext->ClientToken;
+ iToken = SubjectContext->ClientToken;
if (SubjectContext->ImpersonationLevel < 2)
{
return(FALSE);
}
}
- return(SepPrivilegeCheck(Token,
+ return(SepPrivilegeCheck(iToken,
Privileges->Privilege,
Privileges->PrivilegeCount,
Privileges->Control,