44 lines
1.1 KiB
Diff
44 lines
1.1 KiB
Diff
|
|
From 0f4e09d27dc175ce3e95d070b794351663c7220e Mon Sep 17 00:00:00 2001
|
||
|
|
From: =?UTF-8?q?Ole=20Andr=C3=A9=20Vadla=20Ravn=C3=A5s?=
|
||
|
|
<ole.andre.ravnas@tillitech.com>
|
||
|
|
Date: Sat, 26 Jul 2014 00:11:06 +0200
|
||
|
|
Subject: [PATCH 012/415] Fix non-variadic CIF initialization for Apple/ARM64
|
||
|
|
|
||
|
|
Turns out `aarch64_nfixedargs` wasn't initialized in the non-variadic
|
||
|
|
case, resulting in undefined behavior when allocating arguments.
|
||
|
|
---
|
||
|
|
src/aarch64/ffi.c | 8 +++++++-
|
||
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/src/aarch64/ffi.c b/src/aarch64/ffi.c
|
||
|
|
index b807a2d..05f1a13 100644
|
||
|
|
--- a/src/aarch64/ffi.c
|
||
|
|
+++ b/src/aarch64/ffi.c
|
||
|
|
@@ -779,6 +779,8 @@ ffi_prep_cif_machdep (ffi_cif *cif)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
+ cif->aarch64_nfixedargs = 0;
|
||
|
|
+
|
||
|
|
return FFI_OK;
|
||
|
|
}
|
||
|
|
|
||
|
|
@@ -789,9 +791,13 @@ ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif,
|
||
|
|
unsigned int nfixedargs,
|
||
|
|
unsigned int ntotalargs)
|
||
|
|
{
|
||
|
|
+ ffi_status status;
|
||
|
|
+
|
||
|
|
+ status = ffi_prep_cif_machdep (cif);
|
||
|
|
+
|
||
|
|
cif->aarch64_nfixedargs = nfixedargs;
|
||
|
|
|
||
|
|
- return ffi_prep_cif_machdep(cif);
|
||
|
|
+ return status;
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|
||
|
|
--
|
||
|
|
2.7.4.huawei.3
|
||
|
|
|