Alexandre Julliard : ntdll: Ignore faults caused by alignment check on x86-64.

Alexandre Julliard julliard at winehq.org
Fri Jun 18 14:45:53 CDT 2021


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Jun 18 13:49:03 2021 +0200

ntdll: Ignore faults caused by alignment check on x86-64.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/unix/signal_x86_64.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index c36699589d9..2cd133a1087 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -2280,6 +2280,11 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext )
         if (!rec.ExceptionCode) return;
         break;
     case TRAP_x86_ALIGNFLT:  /* Alignment check exception */
+        if (EFL_sig(ucontext) & 0x00040000)
+        {
+            EFL_sig(ucontext) &= ~0x00040000;  /* reset AC flag */
+            return;
+        }
         rec.ExceptionCode = EXCEPTION_DATATYPE_MISALIGNMENT;
         break;
     default:




More information about the wine-cvs mailing list