From bd63cce8f5bb9b55df559c3bdd49ab07fc569e74 Mon Sep 17 00:00:00 2001 From: Andrew Wesie Date: Mon, 12 Mar 2018 23:03:06 -0500 Subject: [PATCH] ntdll: Handle interrupt 0x2c on x86-64. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- dlls/ntdll/signal_x86_64.c | 3 +++ dlls/ntdll/tests/exception.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c index 7b820838eb6..05b0906a372 100644 --- a/dlls/ntdll/signal_x86_64.c +++ b/dlls/ntdll/signal_x86_64.c @@ -2809,6 +2809,9 @@ static inline BOOL handle_interrupt( unsigned int interrupt, EXCEPTION_RECORD *r { switch(interrupt) { + case 0x2c: + rec->ExceptionCode = STATUS_ASSERTION_FAILURE; + return TRUE; case 0x2d: context->Rip += 3; rec->ExceptionCode = EXCEPTION_BREAKPOINT; diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c index a76fce68fdc..7615b5aebda 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c @@ -2354,8 +2354,6 @@ static DWORD WINAPI handler( EXCEPTION_RECORD *rec, ULONG64 frame, trace( "exception %u: %x flags:%x addr:%p\n", entry, rec->ExceptionCode, rec->ExceptionFlags, rec->ExceptionAddress ); -todo_wine_if( rec->ExceptionCode != except->status && - rec->ExceptionCode != except->alt_status ) ok( rec->ExceptionCode == except->status || (except->alt_status != 0 && rec->ExceptionCode == except->alt_status), "%u: Wrong exception code %x/%x\n", entry, rec->ExceptionCode, except->status );