map size fixes
MODIFY
docs/ChangeLog
docs/ChangeLog
@@ -18,6 +18,7 @@ Version ++2.53d (dev):
----------------------
- custom mutator by a loaded library is now supported (thanks to kyakdan!)
+ - fix for a few features to support different map sized than 2^16
- afl-showmap: new option -r now shows the real values in the buckets (stock
afl never did), plus shows tuple content summary information now
- fix building on *BSD (thanks to tobias.kortkamp for the patch)

MODIFY
llvm_mode/LLVMInsTrim.so.cc
llvm_mode/LLVMInsTrim.so.cc
@@ -46,15 +46,13 @@ namespace {
std::mt19937 generator;
int total_instr = 0;
- unsigned genLabel() {
- return generator() % 65536;
+ unsigned int genLabel() {
+ return generator() &= MAP_SIZE - 1;
}
public:
static char ID;
- InsTrim() : ModulePass(ID), generator(0) {//}
-
-// AFLCoverage() : ModulePass(ID) {
+ InsTrim() : ModulePass(ID), generator(0) {
char* instWhiteListFilename = getenv("AFL_LLVM_WHITELIST");
if (instWhiteListFilename) {
std::string line;

MODIFY
qemu_mode/patches/afl-qemu-cpu-inl.h
qemu_mode/patches/afl-qemu-cpu-inl.h
/* This is equivalent to afl-as.h: */
-static unsigned char dummy[65536]; /* costs 64kb but saves a few instructions */
+static unsigned char dummy[MAP_SIZE]; /* costs MAP_SIZE but saves a few instructions */
unsigned char *afl_area_ptr = dummy; /* Exported for afl_gen_trace */
/* Exported variables populated by the code patched into elfload.c: */

map size fixes