diff --git a/ntoskrnl/mm/ARM3/pagfault.c b/ntoskrnl/mm/ARM3/pagfault.c index eefee2b340b..6d60645debd 100644 --- a/ntoskrnl/mm/ARM3/pagfault.c +++ b/ntoskrnl/mm/ARM3/pagfault.c @@ -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);