Fix misaligned memory access in ffi_call_int
authorFrancis Ricci <francisjricci@gmail.com>
Thu, 3 Aug 2017 17:46:28 +0000 (10:46 -0700)
committerFrancis Ricci <francisjricci@gmail.com>
Thu, 3 Aug 2017 17:46:28 +0000 (10:46 -0700)
src/x86/ffi64.c

index 2603a3a..757930b 100644 (file)
@@ -646,10 +646,10 @@ ffi_call_int (ffi_cif *cif, void (*fn)(void), void *rvalue,
                  break;
                case X86_64_SSE_CLASS:
                case X86_64_SSEDF_CLASS:
-                 reg_args->sse[ssecount++].i64 = *(UINT64 *) a;
+                 memcpy (&reg_args->sse[ssecount++].i64, a, sizeof(UINT64));
                  break;
                case X86_64_SSESF_CLASS:
-                 reg_args->sse[ssecount++].i32 = *(UINT32 *) a;
+                 memcpy (&reg_args->sse[ssecount++].i32, a, sizeof(UINT32));
                  break;
                default:
                  abort();