[all-commits] [llvm/llvm-project] ad78fe: [runtimes][PAC] Harden unwinding when possible (#1...

Oliver Hunt via All-commits all-commits at lists.llvm.org
Fri Jun 6 19:03:41 PDT 2025


  Branch: refs/heads/users/ojhunt/pointer-authenticated-unwinding
  Home:   https://github.com/llvm/llvm-project
  Commit: ad78fee1547cdd34315845a1c2b9c6872b810218
      https://github.com/llvm/llvm-project/commit/ad78fee1547cdd34315845a1c2b9c6872b810218
  Author: Oliver Hunt <oliver at apple.com>
  Date:   2025-06-06 (Fri, 06 Jun 2025)

  Changed paths:
    M compiler-rt/lib/builtins/gcc_personality_v0.c
    M compiler-rt/lib/profile/InstrProfilingValue.c
    M libcxxabi/include/__cxxabi_config.h
    M libcxxabi/src/cxa_exception.h
    M libcxxabi/src/cxa_personality.cpp
    M libunwind/include/libunwind.h
    M libunwind/src/AddressSpace.hpp
    M libunwind/src/DwarfInstructions.hpp
    M libunwind/src/DwarfParser.hpp
    M libunwind/src/Registers.hpp
    M libunwind/src/UnwindCursor.hpp
    M libunwind/src/UnwindLevel1.c
    M libunwind/src/UnwindRegistersSave.S
    M libunwind/src/libunwind.cpp

  Log Message:
  -----------
  [runtimes][PAC] Harden unwinding when possible (#138571)

This hardens the unwinding logic and datastructures on systems
that support pointer authentication.

The approach taken to hardening is to harden the schemas of as many
high value fields in the myriad structs as possible, and then also
explicitly qualify local variables referencing privileged or security
critical values.

This ABI is exposed to the personality functions, and so updating to
conform to that is a mandatory change, but to reduce the risk of
oracles, the adoption also hardened the locals and datastructures
in compiler-rt and libcxxabi.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list