mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
Mm: Fix page protection flags checks.
svn path=/trunk/; revision=39054
This commit is contained in:
@@ -140,6 +140,16 @@ typedef ULONG PFN_TYPE, *PPFN_TYPE;
|
||||
PAGE_NOACCESS | \
|
||||
PAGE_NOCACHE)
|
||||
|
||||
#define PAGE_FLAGS_VALID_FOR_SECTION \
|
||||
(PAGE_READONLY | \
|
||||
PAGE_READWRITE | \
|
||||
PAGE_WRITECOPY | \
|
||||
PAGE_EXECUTE | \
|
||||
PAGE_EXECUTE_READ | \
|
||||
PAGE_EXECUTE_READWRITE | \
|
||||
PAGE_EXECUTE_WRITECOPY | \
|
||||
PAGE_NOACCESS)
|
||||
|
||||
#define PAGE_IS_READABLE \
|
||||
(PAGE_READONLY | \
|
||||
PAGE_READWRITE | \
|
||||
|
||||
@@ -569,7 +569,7 @@ NtAllocateVirtualMemory(IN HANDLE ProcessHandle,
|
||||
Protect);
|
||||
|
||||
/* Check for valid protection flags */
|
||||
if (!(Protect & PAGE_FLAGS_VALID_FROM_USER_MODE))
|
||||
if (!Protect || Protect & ~PAGE_FLAGS_VALID_FROM_USER_MODE)
|
||||
{
|
||||
DPRINT1("Invalid page protection\n");
|
||||
return STATUS_INVALID_PAGE_PROTECTION;
|
||||
|
||||
@@ -4538,10 +4538,7 @@ MmMapViewOfSection(IN PVOID SectionObject,
|
||||
|
||||
ASSERT(Process);
|
||||
|
||||
if (!(Protect & (PAGE_READONLY | PAGE_READWRITE |
|
||||
PAGE_WRITECOPY | PAGE_EXECUTE |
|
||||
PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE |
|
||||
PAGE_EXECUTE_WRITECOPY | PAGE_NOACCESS)))
|
||||
if (!Protect || Protect & ~PAGE_FLAGS_VALID_FOR_SECTION)
|
||||
{
|
||||
return STATUS_INVALID_PAGE_PROTECTION;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user