- MiQueryVirtualMemory shouldn't be called for kernel memory, so remove the special case code for a kernel address space. Also fixes a case where we would dereference an uninitialized pointer.

- Fix for Coverity Error CID: 773

svn path=/trunk/; revision=36494
This commit is contained in:
Stefan Ginsberg 2008-09-24 19:13:08 +00:00
parent a9d6e4341e
commit ef2bb65235

View file

@ -427,8 +427,6 @@ MiQueryVirtualMemory(IN HANDLE ProcessHandle,
MEMORY_AREA* MemoryArea; MEMORY_AREA* MemoryArea;
PMM_AVL_TABLE AddressSpace; PMM_AVL_TABLE AddressSpace;
if (Address < MmSystemRangeStart)
{
Status = ObReferenceObjectByHandle(ProcessHandle, Status = ObReferenceObjectByHandle(ProcessHandle,
PROCESS_QUERY_INFORMATION, PROCESS_QUERY_INFORMATION,
NULL, NULL,
@ -441,12 +439,9 @@ MiQueryVirtualMemory(IN HANDLE ProcessHandle,
DPRINT("NtQueryVirtualMemory() = %x\n",Status); DPRINT("NtQueryVirtualMemory() = %x\n",Status);
return(Status); return(Status);
} }
AddressSpace = &Process->VadRoot; AddressSpace = &Process->VadRoot;
}
else
{
AddressSpace = MmGetKernelAddressSpace();
}
MmLockAddressSpace(AddressSpace); MmLockAddressSpace(AddressSpace);
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, Address); MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, Address);
switch(VirtualMemoryInformationClass) switch(VirtualMemoryInformationClass)
@ -572,11 +567,7 @@ MiQueryVirtualMemory(IN HANDLE ProcessHandle,
} }
MmUnlockAddressSpace(AddressSpace); MmUnlockAddressSpace(AddressSpace);
if (Address < MmSystemRangeStart)
{
ASSERT(Process);
ObDereferenceObject(Process); ObDereferenceObject(Process);
}
return Status; return Status;
} }