summaryrefslogtreecommitdiff
path: root/src/closures.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/closures.c')
-rw-r--r--src/closures.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/closures.c b/src/closures.c
index 047abcd..b5eb2bb 100644
--- a/src/closures.c
+++ b/src/closures.c
@@ -148,6 +148,9 @@ ffi_closure_free (void *ptr)
#include <mach/mach.h>
#include <pthread.h>
+#ifdef HAVE_PTRAUTH
+#include <ptrauth.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
@@ -301,6 +304,9 @@ ffi_closure_alloc (size_t size, void **code)
/* Initialize the return values */
*code = entry->trampoline;
+#ifdef HAVE_PTRAUTH
+ *code = ptrauth_sign_unauthenticated (*code, ptrauth_key_asia, 0);
+#endif
closure->trampoline_table = table;
closure->trampoline_table_entry = entry;