Comment 5 for bug 1892915

Revision history for this message
Steve Langasek (vorlon) wrote :

I see that the libffi transition in -proposed is as-yet incomplete. So one possible explanation for the crash would be if pointers to libffi objects are being passed between other libraries that are linked to different versions of libffi, resulting in a crash.

 #if defined (X86_64) || defined(X86_WIN64) \
     || (defined (__x86_64__) && defined (X86_DARWIN))
-# define FFI_TRAMPOLINE_SIZE 24
+/* 4 bytes of ENDBR64 + 7 bytes of LEA + 6 bytes of JMP + 7 bytes of NOP
+ + 8 bytes of pointer. */
+# define FFI_TRAMPOLINE_SIZE 32
 # define FFI_NATIVE_RAW_API 0
 #else
-# define FFI_TRAMPOLINE_SIZE 12
+/* 4 bytes of ENDBR32 + 5 bytes of MOV + 5 bytes of JMP + 2 unused
+ bytes. */
+# define FFI_TRAMPOLINE_SIZE 16
 # define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */
 #endif

There are definitely libffi structures that have changed size between releases.