offset from code base address, not data base address
This commit is contained in:
@@ -325,7 +325,7 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, void **avalue,
|
|||||||
({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
|
({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
|
||||||
unsigned int __fun = (unsigned int)(FUN); \
|
unsigned int __fun = (unsigned int)(FUN); \
|
||||||
unsigned int __ctx = (unsigned int)(CTX); \
|
unsigned int __ctx = (unsigned int)(CTX); \
|
||||||
unsigned int __dis = __fun - ((unsigned int) __tramp + 10); \
|
unsigned int __dis = __fun - (__ctx + 10); \
|
||||||
unsigned short __size = (unsigned short)(SIZE); \
|
unsigned short __size = (unsigned short)(SIZE); \
|
||||||
*(unsigned char*) &__tramp[0] = 0xb8; \
|
*(unsigned char*) &__tramp[0] = 0xb8; \
|
||||||
*(unsigned int*) &__tramp[1] = __ctx; /* movl __ctx, %eax */ \
|
*(unsigned int*) &__tramp[1] = __ctx; /* movl __ctx, %eax */ \
|
||||||
|
|||||||
Reference in New Issue
Block a user