[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 */
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 */
MiResolveDemandZeroFault(Address,
PointerPte,
MM_READWRITE,
TempPte.u.Soft.Protection,
CurrentProcess,
MM_NOIRQL);