arm64: strip PACs from return addresses found from CFI

Bug: b/239086293
Change-Id: I8b514e8640f0f2496cea8d0b516124c0e3a3b81a
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3788698
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Joshua Peraza 2022-07-26 19:20:10 -07:00
parent 86ea554601
commit defdcb714e

View File

@ -170,6 +170,8 @@ StackFrameARM64* StackwalkerARM64::GetCallerByCFIFrameInfo(
if ((frame->context_validity & essentials) != essentials) if ((frame->context_validity & essentials) != essentials)
return NULL; return NULL;
frame->context.iregs[MD_CONTEXT_ARM64_REG_PC] =
PtrauthStrip(frame->context.iregs[MD_CONTEXT_ARM64_REG_PC]);
frame->trust = StackFrame::FRAME_TRUST_CFI; frame->trust = StackFrame::FRAME_TRUST_CFI;
return frame.release(); return frame.release();
} }