summaryrefslogtreecommitdiff
path: root/lib/tsan
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2018-05-07 01:08:13 +0000
committerVitaly Buka <vitalybuka@google.com>2018-05-07 01:08:13 +0000
commit16037b7ea1bb446c193e591bc8219c5a1b0af919 (patch)
treebcbfdc66cb1cb845e191a619e5d13d9020c7a34e /lib/tsan
parent39401bf064ee0b5ab39ceb4cedca9bba3644df5c (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.cc7
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);
}
}