https://git.reactos.org/?p=reactos.git;a=commitdiff;h=0ad4ef6002fc2fdd9e636fa98384859c39d68e1c

commit 0ad4ef6002fc2fdd9e636fa98384859c39d68e1c
Author:     Pierre Schweitzer <[email protected]>
AuthorDate: Thu Aug 9 21:13:08 2018 +0200
Commit:     Pierre Schweitzer <[email protected]>
CommitDate: Sat Aug 11 23:01:05 2018 +0200

    [NTOSKRNL] Check that caller has appropriate right before creating page file
---
 ntoskrnl/mm/pagefile.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ntoskrnl/mm/pagefile.c b/ntoskrnl/mm/pagefile.c
index a30d920d22..523422fcf5 100644
--- a/ntoskrnl/mm/pagefile.c
+++ b/ntoskrnl/mm/pagefile.c
@@ -509,13 +509,18 @@ NtCreatePagingFile(IN PUNICODE_STRING FileName,
 
     if (MmNumberOfPagingFiles >= MAX_PAGING_FILES)
     {
-        return(STATUS_TOO_MANY_PAGING_FILES);
+        return STATUS_TOO_MANY_PAGING_FILES;
     }
 
     PreviousMode = ExGetPreviousMode();
 
     if (PreviousMode != KernelMode)
     {
+        if (SeSinglePrivilegeCheck(SeCreatePagefilePrivilege, PreviousMode) != 
TRUE)
+        {
+            return STATUS_PRIVILEGE_NOT_HELD;
+        }
+
         _SEH2_TRY
         {
             SafeInitialSize = ProbeForReadLargeInteger(InitialSize);

Reply via email to