diff options
| author | van Hauser <vh@thc.org> | 2020-05-07 14:59:12 +0200 |
|---|---|---|
| committer | van Hauser <vh@thc.org> | 2020-05-07 14:59:12 +0200 |
| commit | ef2ccc8117bb899616472e2d95525ae0ca1a2098 (patch) | |
| tree | 3669903ac71840a5989a71695453d78fd2da9a80 /llvm_mode/afl-llvm-lto-instrumentation.so.cc | |
| parent | 02887dc1645f3d4114905d22240a062098314e7b (diff) | |
| download | afl++-ef2ccc8117bb899616472e2d95525ae0ca1a2098.tar.gz | |
added AFL_LLVM_SKIPSINGLEBLOCK and changed default behaviour to instrument single block functions
Diffstat (limited to 'llvm_mode/afl-llvm-lto-instrumentation.so.cc')
| -rw-r--r-- | llvm_mode/afl-llvm-lto-instrumentation.so.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm_mode/afl-llvm-lto-instrumentation.so.cc b/llvm_mode/afl-llvm-lto-instrumentation.so.cc index 0e353fdf..f44b336e 100644 --- a/llvm_mode/afl-llvm-lto-instrumentation.so.cc +++ b/llvm_mode/afl-llvm-lto-instrumentation.so.cc @@ -87,6 +87,7 @@ class AFLLTOPass : public ModulePass { protected: int afl_global_id = 1, debug = 0, autodictionary = 0; + uint32_t function_minimum_size = 1; uint32_t be_quiet = 0, inst_blocks = 0, inst_funcs = 0, total_instr = 0; uint64_t map_addr = 0x10000; char * skip_nozero = NULL; @@ -124,6 +125,10 @@ bool AFLLTOPass::runOnModule(Module &M) { if (getenv("AFL_LLVM_MAP_DYNAMIC")) map_addr = 0; + if (getenv("AFL_LLVM_INSTRIM_SKIPSINGLEBLOCK") || + getenv("AFL_LLVM_SKIPSINGLEBLOCK")) + function_minimum_size = 2; + if ((ptr = getenv("AFL_LLVM_MAP_ADDR"))) { uint64_t val; @@ -189,7 +194,7 @@ bool AFLLTOPass::runOnModule(Module &M) { // fprintf(stderr, "DEBUG: Function %s\n", F.getName().str().c_str()); - if (F.size() < 2) continue; + if (F.size() < function_minimum_size) continue; if (isBlacklisted(&F)) continue; std::vector<BasicBlock *> InsBlocks; |
