ensure proper aligning for skim patch
MODIFY
instrumentation/afl-compiler-rt.o.c
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) {

MODIFY
instrumentation/afl-llvm-lto-instrumentation.so.cc
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");

MODIFY
src/afl-common.c
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); }
}

MODIFY
src/afl-forkserver.c
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);
}

ensure proper aligning for skim patch