aboutsummaryrefslogtreecommitdiff
path: root/src/tools/linux/core2md
diff options
context:
space:
mode:
authorTobias Sargeant <tobiasjs@google.com>2017-02-23 14:22:36 +0000
committerTobias Sargeant <tobiasjs@chromium.org>2017-02-23 17:47:47 +0000
commit4a7e088a278e26ab6c5f0972fd053ec610deb5bb (patch)
treede3b95c7647160263191213c4ad6aa4507e215e7 /src/tools/linux/core2md
parentUse the correct PC when determining whether to skip storing a stack. (diff)
downloadbreakpad-4a7e088a278e26ab6c5f0972fd053ec610deb5bb.tar.xz
Make stack sanitization elide pointers to non-executable mappings.
The address space of every Android Java process is approximately 50% mapped, which means that sanitization tends to be ineffective because most string fragments are plausibly pointers into some mapping. For example, the zygote on 32 bit devices has the following mappings made by dalvik and this covers all 4 byte strings starting with a character between 0x13 and 0x52 (which includes all uppercase characters up to and including 'R'). 12c00000-12d16000 12d16000-32c00000 32c00000-32c01000 32c01000-52c00000 In order to perform stack unwinding we only need pointers into the stack of the thread in question, and pointers to executable mappings. If we reduce the set of considered mappings to those mappings alone, then only ~2% of the address space is left unelided. BUG=664460 Change-Id: I1cc27821659acfb91d658f42a83a24c176505a88 Reviewed-on: https://chromium-review.googlesource.com/446500 Reviewed-by: Robert Sesek <rsesek@chromium.org>
Diffstat (limited to 'src/tools/linux/core2md')
0 files changed, 0 insertions, 0 deletions