mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:53:06 +00:00
- 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
This commit is contained in:
parent
fa64b48be5
commit
fc5e4daca1
2 changed files with 14 additions and 0 deletions
|
@ -65,6 +65,8 @@ extern VOID KiTrapUnknown(VOID);
|
||||||
extern ULONG init_stack;
|
extern ULONG init_stack;
|
||||||
extern ULONG init_stack_top;
|
extern ULONG init_stack_top;
|
||||||
|
|
||||||
|
extern BOOLEAN Ke386NoExecute;
|
||||||
|
|
||||||
static char *ExceptionTypeStrings[] =
|
static char *ExceptionTypeStrings[] =
|
||||||
{
|
{
|
||||||
"Divide Error",
|
"Divide Error",
|
||||||
|
@ -572,6 +574,10 @@ KiTrapHandler(PKTRAP_FRAME Tf, ULONG ExceptionNr)
|
||||||
*/
|
*/
|
||||||
if (ExceptionNr == 14)
|
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)
|
if (Tf->Eflags & FLAG_IF)
|
||||||
{
|
{
|
||||||
Ke386EnableInterrupts();
|
Ke386EnableInterrupts();
|
||||||
|
|
|
@ -1029,4 +1029,12 @@ Language=English
|
||||||
certain\n conditions. There is absolutely no warranty for ReactOS.\n
|
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
|
; EOF
|
Loading…
Add table
Add a link
Reference in a new issue