[AArch64] Add initial support for PAC relocs#2
Closed
kovdan01 wants to merge 16 commits intomaster-oldfrom
Closed
Conversation
TODO: do we need this to be done for vDSO as well?
- Do not check pointer signature before we are relocated as this might be a pointer to global. - Sign function pointers returned from __vdsosym. - Do not apply PAC relocs in __dls2, because we may need to do this second time in __dls3. We can't do this as we overwrite authentication scheme when applying relocs.
…sing We use `#if __has_feature(ptrauth_calls)` there.
1268c66 to
9525be8
Compare
Previously, the pointer was signed two times, and authenticated only once.
…resent Previously, it was signed unconditionally w/o taking the dynamic tag into account (only `__has_feature(ptrauth_calls)` was checked by preprocessor). See also specification: https://github.com/ARM-software/abi-aa/blob/main/pauthabielf64/pauthabielf64.rst#recording-a-signed-plt-got-in-the-elf-file
Ideally, this should be conditional on whether ptrauth_returns is requested and which key is used, but this patch still should be safe as PACIASP and AUTIASP are encoded as HINT and both prologue and epilogue use the same IA key. Note that even if .init_array and .fini_array are actually used, _init and _fini functions are statically linked into every executable, thus this patch is a natural way to silence multiple warnings reported by PAuth gadget scanner for every executable.
Author
|
Closing this as it's superseeded by #5 which is based on top of latest v1.2.5 musl release. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This replaces #1 with some enhancements: