-
- Downloads
libgcc: Fix uninitialized RA signing on AArch64 [PR107678]
A recent change only initializes the regs.how[] during Dwarf unwinding which resulted in an uninitialized offset used in return address signing and random failures during unwinding. The fix is to encode the return address signing state in REG_UNSAVED and a new state REG_UNSAVED_ARCHEXT. libgcc/ PR target/107678 * unwind-dw2.h (REG_UNSAVED_ARCHEXT): Add new enum. * unwind-dw2.c (uw_update_context_1): Add REG_UNSAVED_ARCHEXT case. * unwind-dw2-execute_cfa.h: Use REG_UNSAVED_ARCHEXT/REG_UNSAVED to encode the return address signing state. * config/aarch64/aarch64-unwind.h (aarch64_demangle_return_addr) Check current return address signing state. (aarch64_frob_update_contex): Remove.
Showing
- libgcc/config/aarch64/aarch64-unwind.h 12 additions, 28 deletionslibgcc/config/aarch64/aarch64-unwind.h
- libgcc/unwind-dw2-execute_cfa.h 8 additions, 3 deletionslibgcc/unwind-dw2-execute_cfa.h
- libgcc/unwind-dw2.c 1 addition, 3 deletionslibgcc/unwind-dw2.c
- libgcc/unwind-dw2.h 1 addition, 0 deletionslibgcc/unwind-dw2.h
Loading
Please register or sign in to comment