mirror of
https://github.com/reactos/reactos.git
synced 2024-07-06 20:55:16 +00:00
Mm: Fix page protection flags checks.
svn path=/trunk/; revision=39054
This commit is contained in:
parent
16c99f33f3
commit
f7b0b2a29e
|
@ -140,6 +140,16 @@ typedef ULONG PFN_TYPE, *PPFN_TYPE;
|
||||||
PAGE_NOACCESS | \
|
PAGE_NOACCESS | \
|
||||||
PAGE_NOCACHE)
|
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 \
|
#define PAGE_IS_READABLE \
|
||||||
(PAGE_READONLY | \
|
(PAGE_READONLY | \
|
||||||
PAGE_READWRITE | \
|
PAGE_READWRITE | \
|
||||||
|
|
|
@ -569,7 +569,7 @@ NtAllocateVirtualMemory(IN HANDLE ProcessHandle,
|
||||||
Protect);
|
Protect);
|
||||||
|
|
||||||
/* Check for valid protection flags */
|
/* 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");
|
DPRINT1("Invalid page protection\n");
|
||||||
return STATUS_INVALID_PAGE_PROTECTION;
|
return STATUS_INVALID_PAGE_PROTECTION;
|
||||||
|
|
|
@ -4538,10 +4538,7 @@ MmMapViewOfSection(IN PVOID SectionObject,
|
||||||
|
|
||||||
ASSERT(Process);
|
ASSERT(Process);
|
||||||
|
|
||||||
if (!(Protect & (PAGE_READONLY | PAGE_READWRITE |
|
if (!Protect || Protect & ~PAGE_FLAGS_VALID_FOR_SECTION)
|
||||||
PAGE_WRITECOPY | PAGE_EXECUTE |
|
|
||||||
PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE |
|
|
||||||
PAGE_EXECUTE_WRITECOPY | PAGE_NOACCESS)))
|
|
||||||
{
|
{
|
||||||
return STATUS_INVALID_PAGE_PROTECTION;
|
return STATUS_INVALID_PAGE_PROTECTION;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue