diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-01-13 01:32:15 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-01-13 01:32:15 +0000 |
| commit | 080e0d40b912bf2a389c5a615ed1429ab330adee (patch) | |
| tree | d07bc66e72cb593c1fe20115287f8aa131bcc64e /compiler-rt/lib/hwasan | |
| parent | c2b340a5c625b495d5311b02f15cf124dc7ed835 (diff) | |
| download | bcm5719-llvm-080e0d40b912bf2a389c5a615ed1429ab330adee.tar.gz bcm5719-llvm-080e0d40b912bf2a389c5a615ed1429ab330adee.zip | |
[hwasan] An LLVM flag to disable stack tag randomization.
Summary: Necessary to achieve consistent test results.
Reviewers: kcc, alekseyshl
Subscribers: kubamracek, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D42023
llvm-svn: 322429
Diffstat (limited to 'compiler-rt/lib/hwasan')
| -rw-r--r-- | compiler-rt/lib/hwasan/hwasan.cc | 8 | ||||
| -rw-r--r-- | compiler-rt/lib/hwasan/hwasan_interface_internal.h | 3 |
2 files changed, 11 insertions, 0 deletions
diff --git a/compiler-rt/lib/hwasan/hwasan.cc b/compiler-rt/lib/hwasan/hwasan.cc index b75e30d9eca..f565e7858af 100644 --- a/compiler-rt/lib/hwasan/hwasan.cc +++ b/compiler-rt/lib/hwasan/hwasan.cc @@ -363,6 +363,14 @@ void __hwasan_tag_memory(uptr p, u8 tag, uptr sz) { TagMemoryAligned(p, sz, tag); } +static const u8 kFallbackTag = 0xBB; + +u8 __hwasan_generate_tag() { + HwasanThread *t = GetCurrentThread(); + if (!t) return kFallbackTag; + return t->GenerateRandomTag(); +} + #if !SANITIZER_SUPPORTS_WEAK_HOOKS extern "C" { SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE diff --git a/compiler-rt/lib/hwasan/hwasan_interface_internal.h b/compiler-rt/lib/hwasan/hwasan_interface_internal.h index 67c150a272d..b065099fba4 100644 --- a/compiler-rt/lib/hwasan/hwasan_interface_internal.h +++ b/compiler-rt/lib/hwasan/hwasan_interface_internal.h @@ -86,6 +86,9 @@ void __hwasan_store16_noabort(uptr); SANITIZER_INTERFACE_ATTRIBUTE void __hwasan_tag_memory(uptr p, u8 tag, uptr sz); +SANITIZER_INTERFACE_ATTRIBUTE +u8 __hwasan_generate_tag(); + // Returns the offset of the first tag mismatch or -1 if the whole range is // good. SANITIZER_INTERFACE_ATTRIBUTE |

