[NTOSKRNL]

Check the PTE as well in MmArmAccessFault, when we are at high IRQL and fail if it's not valid. Otherwise we just end up in an endless loop.

svn path=/trunk/; revision=61075
This commit is contained in:
Timo Kreuzer 2013-11-22 12:23:11 +00:00
parent d018fb6027
commit cd2e06b94c

View file

@ -1365,9 +1365,10 @@ MmArmAccessFault(IN BOOLEAN StoreInstruction,
#if (_MI_PAGING_LEVELS >= 3)
(PointerPpe->u.Hard.Valid == 0) ||
#endif
(PointerPde->u.Hard.Valid == 0))
(PointerPde->u.Hard.Valid == 0) ||
(PointerPte->u.Hard.Valid == 0))
{
/* This fault is not valid, printf out some debugging help */
/* This fault is not valid, print out some debugging help */
DbgPrint("MM:***PAGE FAULT AT IRQL > 1 Va %p, IRQL %lx\n",
Address,
OldIrql);
@ -1411,7 +1412,7 @@ MmArmAccessFault(IN BOOLEAN StoreInstruction,
}
/* Nothing is actually wrong */
DPRINT1("Fault at IRQL1 is ok\n");
DPRINT1("Fault at IRQL %u is ok (%p)\n", OldIrql, Address);
return STATUS_SUCCESS;
}