mirror of
https://github.com/reactos/reactos.git
synced 2024-06-29 01:12:06 +00:00
[NTOSKRNL] Properly check for address validity in !poolfind
This commit is contained in:
parent
47b48520b5
commit
28193399ee
|
@ -3163,7 +3163,6 @@ ExpKdbgExtPoolFindPagedPool(
|
|||
ULONG i = 0;
|
||||
PPOOL_HEADER Entry;
|
||||
PVOID BaseVa;
|
||||
PMMPTE PointerPte;
|
||||
PMMPDE PointerPde;
|
||||
|
||||
KdbpPrint("Searching Paged pool (%p : %p) for Tag: %.4s\n", MmPagedPoolStart, MmPagedPoolEnd, (PCHAR)&Tag);
|
||||
|
@ -3192,13 +3191,7 @@ ExpKdbgExtPoolFindPagedPool(
|
|||
}
|
||||
|
||||
/* Check if allocation is valid */
|
||||
PointerPte = MiAddressToPte(BaseVa);
|
||||
if ((ULONG_PTR)PointerPte > PTE_TOP)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (PointerPte->u.Hard.Valid)
|
||||
if (MmIsAddressValid(BaseVa))
|
||||
{
|
||||
for (Entry = BaseVa;
|
||||
(ULONG_PTR)Entry + sizeof(POOL_HEADER) < (ULONG_PTR)BaseVa + PAGE_SIZE;
|
||||
|
@ -3243,7 +3236,6 @@ ExpKdbgExtPoolFindNonPagedPool(
|
|||
{
|
||||
PPOOL_HEADER Entry;
|
||||
PVOID BaseVa;
|
||||
PMMPTE PointerPte;
|
||||
|
||||
KdbpPrint("Searching NonPaged pool (%p : %p) for Tag: %.4s\n", MmNonPagedPoolStart, MmNonPagedPoolEnd0, (PCHAR)&Tag);
|
||||
|
||||
|
@ -3261,14 +3253,11 @@ ExpKdbgExtPoolFindNonPagedPool(
|
|||
}
|
||||
|
||||
/* Check if allocation is valid */
|
||||
PointerPte = MiAddressToPte(BaseVa);
|
||||
if ((ULONG_PTR)PointerPte > PTE_TOP)
|
||||
if (!MmIsAddressValid(BaseVa))
|
||||
{
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (PointerPte->u.Hard.Valid)
|
||||
{
|
||||
for (Entry = BaseVa;
|
||||
(ULONG_PTR)Entry + sizeof(POOL_HEADER) < (ULONG_PTR)BaseVa + PAGE_SIZE;
|
||||
Entry = (PVOID)((ULONG_PTR)Entry + 8))
|
||||
|
@ -3297,7 +3286,6 @@ ExpKdbgExtPoolFindNonPagedPool(
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
ExpKdbgExtPoolFind(
|
||||
|
|
Loading…
Reference in a new issue