You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Using unsigned int means restricting the size to 2 or 4 bytes max which does not comply with pointers which can acquire up-to 8 bytes of space when using pointers. Hence it is a huge vulnerability for inter-arch switch.
Expected behavior
To be able to pass pointers through the mcalls irrespective of any arch.
Workaround
To introduce a user-defined type which switches between the data-type sizes as required.
Eg:
#if defined(ARCH_ARM_32)
#define__CALL_ARG_TYPE__ unsigned long
#elif defined(ARCH_RISCV_64) || defined(ARCH_ARM_64)
#define__CALL_ARG_TYPE__ unsigned long
#else#define__CALL_ARG_TYPE__ unsigned int
#endiftypedef__CALL_ARG_TYPE__call_args;
The text was updated successfully, but these errors were encountered:
Describe the bug
Using unsigned int means restricting the size to 2 or 4 bytes max which does not comply with pointers which can acquire up-to 8 bytes of space when using pointers. Hence it is a huge vulnerability for inter-arch switch.
Expected behavior
To be able to pass pointers through the mcalls irrespective of any arch.
Workaround
To introduce a user-defined type which switches between the data-type sizes as required.
Eg:
The text was updated successfully, but these errors were encountered: