- Check if a requested fixed address range is valid for the address space.

- This fixes bug #34.

svn path=/trunk/; revision=6489
This commit is contained in:
Hartmut Birr 2003-11-01 12:59:38 +00:00
parent 06f5aba298
commit d8042fe330

View file

@ -519,6 +519,18 @@ NTSTATUS MmCreateMemoryArea(PEPROCESS Process,
{
tmpLength = (ULONG)*BaseAddress + Length - PAGE_ROUND_DOWN((*BaseAddress));
(*BaseAddress) = (PVOID)PAGE_ROUND_DOWN((*BaseAddress));
if (AddressSpace->LowestAddress == KERNEL_BASE &&
(*BaseAddress) < (PVOID)KERNEL_BASE)
{
return STATUS_ACCESS_VIOLATION;
}
if (AddressSpace->LowestAddress < KERNEL_BASE &&
(*BaseAddress) + tmpLength > (PVOID)KERNEL_BASE)
{
return STATUS_ACCESS_VIOLATION;
}
if (MmOpenMemoryAreaByRegion(AddressSpace,
*BaseAddress,
tmpLength)!=NULL)