• Show log

    Commit

  • Hash : 01db744b
    Author : KJ Tsanaktsidis
    Date : 2024-09-20T20:00:49

    Disable ASAN in ffi_call_int functions (#858)
    
    The pattern for several of the architectures is for ffi_call_int to
    stack-allocate some arguments + the registers, and then
    ffi_call_$ARCH will pop the top of that structure into registers, and
    then adjust the stack pointer such that the alloca'd buffer _becomes_
    the stack-passed arguments for the function being called.
    
    If libffi is compiled with ASAN, then there will be a redzone inserted
    after the alloca'd buffer which is marked as poisoned. This redzone
    appears beyond the end of $sp upon entry to the called function.
    
    If the called function does anything to use this stack memory, ASAN will
    notice that it's poisoned and report an error.
    
    This commit fixes the situation (on the architectures that I have access
    to) disabling instrumentation for ffi_call_int; that means there will be
    no alloca redzone left on the shadow-stack.