From: Hartmut Birr Date: Tue, 5 Oct 2004 19:11:17 +0000 (+0000) Subject: - Bugcheck on a page fault, if the reason was code executing in a non executable... X-Git-Tag: backups/new_headers@15094~37^2~212 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=fc5e4daca12b354ae323c699059f3b43e0dddcb4 - Bugcheck on a page fault, if the reason was code executing in a non executable area (only available on a AMD64). svn path=/trunk/; revision=11204 --- diff --git a/reactos/ntoskrnl/ke/i386/exp.c b/reactos/ntoskrnl/ke/i386/exp.c index fcdeadba6cd..0e6250ebd42 100644 --- a/reactos/ntoskrnl/ke/i386/exp.c +++ b/reactos/ntoskrnl/ke/i386/exp.c @@ -65,6 +65,8 @@ extern VOID KiTrapUnknown(VOID); extern ULONG init_stack; extern ULONG init_stack_top; +extern BOOLEAN Ke386NoExecute; + static char *ExceptionTypeStrings[] = { "Divide Error", @@ -572,6 +574,10 @@ KiTrapHandler(PKTRAP_FRAME Tf, ULONG ExceptionNr) */ if (ExceptionNr == 14) { + if (Ke386NoExecute && Tf->ErrorCode & 0x10 && cr2_ >= KERNEL_BASE) + { + KEBUGCHECKWITHTF(ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY, 0, 0, 0, 0, Tf); + } if (Tf->Eflags & FLAG_IF) { Ke386EnableInterrupts(); diff --git a/reactos/ntoskrnl/ntoskrnl.mc b/reactos/ntoskrnl/ntoskrnl.mc index 80e551ed824..8af28f3e9f1 100644 --- a/reactos/ntoskrnl/ntoskrnl.mc +++ b/reactos/ntoskrnl/ntoskrnl.mc @@ -1029,4 +1029,12 @@ Language=English certain\n conditions. There is absolutely no warranty for ReactOS.\n . +MessageId=0xFC +Severity=Success +Facility=System +SymbolicName=ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY +Language=English +ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY +. + ; EOF \ No newline at end of file