diff options
author | Vitaly Buka <vitalybuka@google.com> | 2018-05-07 01:08:13 +0000 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2018-05-07 01:08:13 +0000 |
commit | 16037b7ea1bb446c193e591bc8219c5a1b0af919 (patch) | |
tree | bcbfdc66cb1cb845e191a619e5d13d9020c7a34e /lib/tsan | |
parent | 39401bf064ee0b5ab39ceb4cedca9bba3644df5c (diff) |
[sanitizer] Make InternalScopedBuffer::size() behavior similar to vector.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@331612 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan')
-rw-r--r-- | lib/tsan/rtl/tsan_platform_linux.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/tsan/rtl/tsan_platform_linux.cc b/lib/tsan/rtl/tsan_platform_linux.cc index 041a09fd9..df093f351 100644 --- a/lib/tsan/rtl/tsan_platform_linux.cc +++ b/lib/tsan/rtl/tsan_platform_linux.cc @@ -172,7 +172,7 @@ static void MapRodata() { // volatile to prevent insertion of memset for (volatile u64 *p = marker.data(); p < marker.data() + kMarkerSize; p++) *p = kShadowRodata; - internal_write(fd, marker.data(), marker.size()); + internal_write(fd, marker.data(), marker.size() * sizeof(u64)); // Map the file into memory. uptr page = internal_mmap(0, GetPageSizeCached(), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, fd, 0); @@ -191,8 +191,9 @@ static void MapRodata() { // Assume it's .rodata char *shadow_start = (char *)MemToShadow(segment.start); char *shadow_end = (char *)MemToShadow(segment.end); - for (char *p = shadow_start; p < shadow_end; p += marker.size()) { - internal_mmap(p, Min<uptr>(marker.size(), shadow_end - p), + for (char *p = shadow_start; p < shadow_end; + p += marker.size() * sizeof(u64)) { + internal_mmap(p, Min<uptr>(marker.size() * sizeof(u64), shadow_end - p), PROT_READ, MAP_PRIVATE | MAP_FIXED, fd, 0); } } |