summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib
diff options
context:
space:
mode:
authorMaxim Ostapenko <m.ostapenko@partner.samsung.com>2016-11-30 09:11:47 +0000
committerMaxim Ostapenko <m.ostapenko@partner.samsung.com>2016-11-30 09:11:47 +0000
commitd13634016677b003369f7cba919496ed7fe75870 (patch)
treeab545d4e36528d5adfb57f2f93479981cf3f9712 /compiler-rt/lib
parentcc7eafcf42cbbbd41c9ef1430e6310aaf18a4066 (diff)
downloadbcm5719-llvm-d13634016677b003369f7cba919496ed7fe75870.tar.gz
bcm5719-llvm-d13634016677b003369f7cba919496ed7fe75870.zip
[asan] Avoid redundant poisoning checks in __sanitizer_contiguous_container_find_bad_address.
__sanitizer_contiguous_container_find_bad_address computes three regions of a container to check for poisoning: begin, middle, end. The issue is that in current design the first region can be significantly larger than kMaxRangeToCheck. Proposed patch fixes a typo to calculate the first region properly. Patch by Ivan Baravy. Differential Revision: https://reviews.llvm.org/D27061 llvm-svn: 288234
Diffstat (limited to 'compiler-rt/lib')
-rw-r--r--compiler-rt/lib/asan/asan_poisoning.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler-rt/lib/asan/asan_poisoning.cc b/compiler-rt/lib/asan/asan_poisoning.cc
index e6487a0154c..ec61db4f2d1 100644
--- a/compiler-rt/lib/asan/asan_poisoning.cc
+++ b/compiler-rt/lib/asan/asan_poisoning.cc
@@ -412,7 +412,7 @@ const void *__sanitizer_contiguous_container_find_bad_address(
// ending with end.
uptr kMaxRangeToCheck = 32;
uptr r1_beg = beg;
- uptr r1_end = Min(end + kMaxRangeToCheck, mid);
+ uptr r1_end = Min(beg + kMaxRangeToCheck, mid);
uptr r2_beg = Max(beg, mid - kMaxRangeToCheck);
uptr r2_end = Min(end, mid + kMaxRangeToCheck);
uptr r3_beg = Max(end - kMaxRangeToCheck, mid);
OpenPOWER on IntegriCloud