-
Notifications
You must be signed in to change notification settings - Fork 94
Fix for Pointer Authentication #144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Properly strip PAC signatures from an arm64 process
# elif defined(__aarch64__) | ||
error_addr = reinterpret_cast<void*>(uctx->uc_mcontext.pc); | ||
error_addr = reinterpret_cast<void*>(uctx->uc_mcontext->__ss.__pc); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Confirmed that this works on my M1 Mac. Before merging, I also want to check that this works on Linux aarch64, as that's not currently covered by the test workflows
yeah that did not go well on Linux/aarch64!
Needs more Probably a fresh update of |
This should be resolved now with #154 |
Properly strip PAC signatures from an arm64 process
Description of changes:
The build on Apple M1 notebooks currently fails with the following errors
/src/backward.h:4032:64: error: no member named 'pc' in '__darwin_mcontext64' error_addr = reinterpret_cast<void*>(uctx->uc_mcontext.pc);
src/backward.h:4032:63: error: member reference type 'struct __darwin_mcontext64 *' is a pointer; did you mean to use '->'? error_addr = reinterpret_cast<void*>(uctx->uc_mcontext.pc);
This is happens because of PAC. This change handles PAC and make the code compile again on M1 Macbooks.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.