[NTOS:MM] Handle demand zero PTEs with MM_EXECUTE_READWRITE and MM_READWRITE

This commit is contained in:
Timo Kreuzer 2020-11-01 15:13:36 +01:00 committed by Jérôme Gardou
parent 7ca16bf696
commit 4b4bff0642

View file

@ -2262,12 +2262,13 @@ UserFault:
} }
/* Quick check for demand-zero */ /* Quick check for demand-zero */
if (TempPte.u.Long == (MM_READWRITE << MM_PTE_SOFTWARE_PROTECTION_BITS)) if ((TempPte.u.Long == (MM_READWRITE << MM_PTE_SOFTWARE_PROTECTION_BITS)) ||
(TempPte.u.Long == (MM_EXECUTE_READWRITE << MM_PTE_SOFTWARE_PROTECTION_BITS)))
{ {
/* Resolve the fault */ /* Resolve the fault */
MiResolveDemandZeroFault(Address, MiResolveDemandZeroFault(Address,
PointerPte, PointerPte,
MM_READWRITE, TempPte.u.Soft.Protection,
CurrentProcess, CurrentProcess,
MM_NOIRQL); MM_NOIRQL);