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

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


  Branch: refs/heads/users/ojhunt/pointer-authenticated-unwinding
  Home:   https://github.com/llvm/llvm-project
  Commit: 68103962b254565fdfad069c350af90ede7109b4
      https://github.com/llvm/llvm-project/commit/68103962b254565fdfad069c350af90ede7109b4
  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/UnwindRegistersRestore.S
    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