Zebediah Figura : ntdll: Fix exception parameters on x86-64.

Alexandre Julliard julliard at winehq.org
Tue Mar 13 17:10:53 CDT 2018


Module: wine
Branch: master
Commit: a462735270caf1503735a20b86e97ccead428cca
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a462735270caf1503735a20b86e97ccead428cca

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon Mar 12 23:03:08 2018 -0500

ntdll: Fix exception parameters on x86-64.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 );
 




More information about the wine-cvs mailing list