[PATCH v2 5/5] ntdll: Fix exception parameters on x86-64.

Zebediah Figura z.figura12 at gmail.com
Mon Mar 12 23:03:08 CDT 2018


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/ntdll/signal_x86_64.c   | 3 +++
 dlls/ntdll/tests/exception.c | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index ee3d1f9..efbcc6e 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -2876,6 +2876,9 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext )
             if (!err && (rec->ExceptionCode = is_privileged_instr( win_context ))) break;
             if ((err & 7) == 2 && handle_interrupt( err >> 3, rec, win_context )) break;
             rec->ExceptionCode = EXCEPTION_ACCESS_VIOLATION;
+            rec->NumberParameters = 2;
+            rec->ExceptionInformation[0] = 0;
+            rec->ExceptionInformation[1] = 0xffffffffffffffff;
         }
         break;
     case TRAP_x86_PAGEFLT:  /* Page fault */
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index 320aa77..46e2a30 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -2370,7 +2370,6 @@ static DWORD WINAPI handler( EXCEPTION_RECORD *rec, ULONG64 frame,
     else
         parameter_count = except->alt_nb_params;
 
-todo_wine_if( rec->NumberParameters != parameter_count )
     ok( rec->NumberParameters == parameter_count,
         "%u: Unexpected parameter count %u/%u\n", entry, rec->NumberParameters, parameter_count );
 
-- 
2.7.4




More information about the wine-devel mailing list