breakpad/src
Joshua Peraza cfad51e954 arm64: strip PACs from link register values
Pointer authentication codes are used to validate pointers against
accidental or malicious modification by storing a hash of the address
and a secret value in the pointer's unused, upper bits. The exact
bits used may vary by implementation and depend on the size of the
virtual address space of the target system, and whether other tagged
pointer features are in use.

Apple has implemented PACs in the Apple A12.
https://developer.apple.com/documentation/security/preparing_your_app_to_work_with_pointer_authentication

The documented method of stripping PACs from a pointer is to call
ptrauth_strip(), which ultimately emits an `xpaci` instruction, but
this option isn't available to the Breakpad processor not running on
the device. Instead, this patch selects likely address bits from
link register values by examining the address range of loaded modules.

Change-Id: I054bd1a03605719937fc85dcc8d8b9fe927f44be
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/1713650
Reviewed-by: Mark Mentovai <mark@chromium.org>
2019-07-23 20:02:05 +00:00
..
build Fix MSVC build on 64-bit 2017-09-25 07:10:11 +00:00
client Fix breakpad client build. 2019-06-24 22:44:01 +00:00
common Fix dump_syms clang Windows build. 2019-06-25 00:28:04 +00:00
google_breakpad Improving the support for Fuchsia in Breakpad Processor. 2019-07-12 18:29:23 +00:00
processor arm64: strip PACs from link register values 2019-07-23 20:02:05 +00:00
third_party List missing 64-bit arches in the bundled curl 2017-11-13 19:50:29 +00:00
tools Fix Windows symupload after PE-only MD refactor. 2019-07-01 17:49:32 +00:00
breakpad_googletest_includes.h test: allow use of system gmock/gtest libs 2016-01-25 19:27:56 -05:00
config.h.in Only use O_CLOEXEC on platforms that support it 2017-05-10 21:32:37 +00:00