aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-03-01 09:57:57 +0100
committervanhauser-thc <vh@thc.org>2021-03-01 09:57:57 +0100
commit4619a1395b9a414e5e11148d79fde3a7fa348e87 (patch)
tree76446345dee62e9a9948556bd88e54d424710029
parent0c38850f955a608529bdd02cc39dc68713ef8528 (diff)
downloadafl++-4619a1395b9a414e5e11148d79fde3a7fa348e87.tar.gz
ensure proper aligning for skim patch
-rw-r--r--instrumentation/afl-compiler-rt.o.c8
-rw-r--r--instrumentation/afl-llvm-lto-instrumentation.so.cc4
-rw-r--r--src/afl-common.c2
-rw-r--r--src/afl-forkserver.c4
4 files changed, 10 insertions, 8 deletions
diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c
index e4aeadfa..ecb94cab 100644
--- a/instrumentation/afl-compiler-rt.o.c
+++ b/instrumentation/afl-compiler-rt.o.c
@@ -244,8 +244,12 @@ static void __afl_map_shm(void) {
if (__afl_final_loc) {
- if (__afl_final_loc % 32)
- __afl_final_loc = (((__afl_final_loc + 31) >> 5) << 5);
+ if (__afl_final_loc % 64) {
+
+ __afl_final_loc = (((__afl_final_loc + 63) >> 6) << 6);
+
+ }
+
__afl_map_size = __afl_final_loc;
if (__afl_final_loc > MAP_SIZE) {
diff --git a/instrumentation/afl-llvm-lto-instrumentation.so.cc b/instrumentation/afl-llvm-lto-instrumentation.so.cc
index f5c24e41..137bae2c 100644
--- a/instrumentation/afl-llvm-lto-instrumentation.so.cc
+++ b/instrumentation/afl-llvm-lto-instrumentation.so.cc
@@ -924,9 +924,7 @@ bool AFLLTOPass::runOnModule(Module &M) {
if (getenv("AFL_LLVM_LTO_DONTWRITEID") == NULL) {
- uint32_t write_loc = afl_global_id;
-
- if (afl_global_id % 32) write_loc = (((afl_global_id + 32) >> 4) << 4);
+ uint32_t write_loc = (((afl_global_id + 63) >> 6) << 6);
GlobalVariable *AFLFinalLoc = new GlobalVariable(
M, Int32Ty, true, GlobalValue::ExternalLinkage, 0, "__afl_final_loc");
diff --git a/src/afl-common.c b/src/afl-common.c
index fa4aec7f..a306fe5e 100644
--- a/src/afl-common.c
+++ b/src/afl-common.c
@@ -1135,7 +1135,7 @@ u32 get_map_size(void) {
}
- if (map_size % 32) { map_size = (((map_size >> 5) + 1) << 5); }
+ if (map_size % 64) { map_size = (((map_size >> 6) + 1) << 6); }
}
diff --git a/src/afl-forkserver.c b/src/afl-forkserver.c
index 9ee59822..fd5edc98 100644
--- a/src/afl-forkserver.c
+++ b/src/afl-forkserver.c
@@ -656,11 +656,11 @@ void afl_fsrv_start(afl_forkserver_t *fsrv, char **argv,
if (!fsrv->map_size) { fsrv->map_size = MAP_SIZE; }
- if (unlikely(tmp_map_size % 32)) {
+ if (unlikely(tmp_map_size % 64)) {
// should not happen
WARNF("Target reported non-aligned map size of %u", tmp_map_size);
- tmp_map_size = (((tmp_map_size + 31) >> 5) << 5);
+ tmp_map_size = (((tmp_map_size + 63) >> 6) << 6);
}