Author: fireball
Date: Mon Mar 2 22:57:27 2009
New Revision: 39847
URL:
http://svn.reactos.org/svn/reactos?rev=39847&view=rev
Log:
- Add privileges check to SystemTimeAdjustmentInformation SSI routine. Spotted by Dmitry
Chapyshev.
Modified:
trunk/reactos/ntoskrnl/ex/sysinfo.c
Modified: trunk/reactos/ntoskrnl/ex/sysinfo.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/sysinfo.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/ex/sysinfo.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/sysinfo.c [iso-8859-1] Mon Mar 2 22:57:27 2009
@@ -1440,6 +1440,7 @@
SSI_DEF(SystemTimeAdjustmentInformation)
{
+ KPROCESSOR_MODE PreviousMode = KeGetPreviousMode();
/*PSYSTEM_SET_TIME_ADJUST_INFORMATION TimeInfo =
(PSYSTEM_SET_TIME_ADJUST_INFORMATION)Buffer;*/
@@ -1447,7 +1448,15 @@
if (sizeof(SYSTEM_SET_TIME_ADJUST_INFORMATION) != Size)
return STATUS_INFO_LENGTH_MISMATCH;
- /* TODO: Check privileges */
+ /* Check who is calling */
+ if (PreviousMode != KernelMode)
+ {
+ /* Check access rights */
+ if (!SeSinglePrivilegeCheck(SeSystemtimePrivilege, PreviousMode))
+ {
+ return STATUS_PRIVILEGE_NOT_HELD;
+ }
+ }
/* TODO: Set time adjustment information */
DPRINT1("Setting of SystemTimeAdjustmentInformation is not implemented
yet!\n");