about summary refs log tree commit diff
path: root/llvm_mode/afl-llvm-rt.o.c
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2020-06-25 20:09:56 +0200
committervan Hauser <vh@thc.org>2020-06-25 20:09:56 +0200
commit8d5eb9487d891a7e5c8e68a5b71e0721ef83427a (patch)
tree85f851f67a8e6c1e72076d4c8db1af53cef5a05f /llvm_mode/afl-llvm-rt.o.c
parent633a3feab9f7cf98794eebad81cec730042d7e9b (diff)
downloadafl++-8d5eb9487d891a7e5c8e68a5b71e0721ef83427a.tar.gz
make llvm_mode pcguard instrumentation collision free
Diffstat (limited to 'llvm_mode/afl-llvm-rt.o.c')
-rw-r--r--llvm_mode/afl-llvm-rt.o.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm_mode/afl-llvm-rt.o.c b/llvm_mode/afl-llvm-rt.o.c
index 17b70f26..b815fc1f 100644
--- a/llvm_mode/afl-llvm-rt.o.c
+++ b/llvm_mode/afl-llvm-rt.o.c
@@ -183,6 +183,9 @@ static void __afl_map_shm(void) {
 
   if (__afl_final_loc) {
 
+    if (__afl_final_loc % 8)
+      __afl_final_loc = (((__afl_final_loc + 7) >> 3) << 3);
+
     __afl_map_size = __afl_final_loc;
     if (__afl_final_loc > MAP_SIZE) {
 
@@ -871,7 +874,7 @@ void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop) {
   while (start < stop) {
 
     if (R(100) < inst_ratio)
-      *start = R(MAP_SIZE - 1) + 1;
+      *start = ++__afl_final_loc;
     else
       *start = 0;