[NTOSKRNL]

- Don't change page protection while the memory area is being deleted

svn path=/trunk/; revision=54761
This commit is contained in:
Cameron Gutman 2011-12-26 02:52:26 +00:00
parent 89857ef31c
commit deebdc5f40
3 changed files with 7 additions and 1 deletions

View file

@ -495,7 +495,7 @@ MiProtectVirtualMemory(IN PEPROCESS Process,
MmLockAddressSpace(AddressSpace);
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, *BaseAddress);
if (MemoryArea == NULL)
if (MemoryArea == NULL || MemoryArea->DeleteInProgress)
{
MmUnlockAddressSpace(AddressSpace);
return STATUS_UNSUCCESSFUL;

View file

@ -781,6 +781,9 @@ MmFreeMemoryArea(
}
}
/* There must be no page ops in progress */
ASSERT(MemoryArea->PageOpCount == 0);
/* Remove the tree item. */
{
if (MemoryArea->Parent != NULL)

View file

@ -149,6 +149,9 @@ MmGetPageOp(PMEMORY_AREA MArea, HANDLE Pid, PVOID Address,
Address = (PVOID)PAGE_ROUND_DOWN(Address);
Offset = PAGE_ROUND_DOWN(Offset);
/* Making a page op during marea destruction is illegal */
ASSERT(!MArea->DeleteInProgress);
/*
* Calcuate the hash value for pageop structure
*/