[all-commits] [llvm/llvm-project] c2205a: [Sanitizers][Darwin] Pass offset to __asan_set_sha...

Mariusz Borsa via All-commits all-commits at lists.llvm.org
Sun Nov 12 14:44:56 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c2205ab30917e2718e8863d905b52b5dc453bd96
      https://github.com/llvm/llvm-project/commit/c2205ab30917e2718e8863d905b52b5dc453bd96
  Author: Mariusz Borsa <wrotki at msn.com>
  Date:   2023-11-12 (Sun, 12 Nov 2023)

  Changed paths:
    M compiler-rt/lib/asan_abi/asan_abi_shim.cpp

  Log Message:
  -----------
  [Sanitizers][Darwin] Pass offset to __asan_set_shadow_xx (#71745)

Normally, when __asan_option_detect_stack_use_after_return option is
set,
the instrumentation passed the adress of the shadow memory bytes to be
set, for detecting problems with local variables.
This can be a problem when the -fsanitize-stable-abi option is in
effect,
since the ABI implementation doesn't have means to communicate the
current shadow memory base address
back to its users.

This change addresses it simply by setting
__asan_shadow_memory_dynamic_address to zero. It means
that __asan_set_shadow_xx will be now called with the offset relative to
the current shadow memory
base, and the ABI implementation needs to adapt accordingly.

The other change here is to set
__asan_option_detect_stack_use_after_return to nonzer by default,
which is needed for instrumentation to take paths using the
__asan_shadow_memory_dynamic_address
and __asan_set_shadow_xx calls.

Co-authored-by: Mariusz Borsa <m_borsa at apple.com>




More information about the All-commits mailing list