From cc72f5dfd0905cca44485e7f1c1cfae8f2b051a4 Mon Sep 17 00:00:00 2001 From: van Hauser Date: Thu, 5 Mar 2020 11:04:55 +0100 Subject: clarify -N option --- src/afl-fuzz.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 2d5a5743..12c7853c 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -119,7 +119,7 @@ static void usage(u8* argv0, int more_help) { " if using QEMU, just use -c 0.\n\n" "Fuzzing behavior settings:\n" - " -N - do not unlink the fuzzing input file\n" + " -N - do not unlink the fuzzing input file (only for devices etc.!)\n" " -d - quick & dirty mode (skips deterministic steps)\n" " -n - fuzz without instrumentation (dumb mode)\n" " -x dir - optional fuzzer dictionary (see README.md, its really " -- cgit 1.4.1 From 90409f383a728fdcf4d66ffc607f1e3eb70b9203 Mon Sep 17 00:00:00 2001 From: van Hauser Date: Thu, 5 Mar 2020 11:36:37 +0100 Subject: added AFL_QUIET - be_quiet to afl-showmap and small changes to test.sh --- src/afl-showmap.c | 8 ++++++-- test/test.sh | 57 +++++++++++++++++++++++++++++-------------------------- 2 files changed, 36 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/afl-showmap.c b/src/afl-showmap.c index 4c1168a6..6075027f 100644 --- a/src/afl-showmap.c +++ b/src/afl-showmap.c @@ -173,8 +173,8 @@ static u32 write_results_to_file(u8* out_file) { s32 fd; u32 i, ret = 0; - u8 cco = !!get_afl_env("AFL_CMIN_CRASHES_ONLY"), - caa = !!get_afl_env("AFL_CMIN_ALLOW_ANY"); + u8 cco = !!getenv("AFL_CMIN_CRASHES_ONLY"), + caa = !!getenv("AFL_CMIN_ALLOW_ANY"); if (!strncmp(out_file, "/dev/", 5)) { @@ -654,6 +654,7 @@ static void usage(u8* argv0) { "Environment variables used:\n" "AFL_PRELOAD: LD_PRELOAD / DYLD_INSERT_LIBRARIES settings for target\n" "AFL_DEBUG: enable extra developer output\n" + "AFL_QUIET: do not print extra informational output" "AFL_CMIN_CRASHES_ONLY: (cmin_mode) only write tuples for crashing " "inputs\n" "AFL_CMIN_ALLOW_ANY: (cmin_mode) write tuples for crashing inputs also\n" @@ -729,6 +730,9 @@ int main(int argc, char** argv, char** envp) { char** use_argv; doc_path = access(DOC_PATH, F_OK) ? "docs" : DOC_PATH; + + if (getenv("AFL_QUIET") != NULL) + be_quiet = 1; while ((opt = getopt(argc, argv, "+i:o:f:m:t:A:eqZQUWbcrh")) > 0) diff --git a/test/test.sh b/test/test.sh index 19c10658..1a3f562c 100755 --- a/test/test.sh +++ b/test/test.sh @@ -184,6 +184,7 @@ test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = "amd64" -o "$SYS" = "i86pc ;; esac rm -f in2/in* + export AFL_QUIET=1 AFL_PATH=`pwd`/.. ../afl-cmin.bash -m ${MEM_LIMIT} -i in -o in2 -- ./test-instr.plain >/dev/null CNT=`ls in2/* 2>/dev/null | wc -l` case "$CNT" in @@ -200,6 +201,7 @@ test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = "amd64" -o "$SYS" = "i86pc CODE=1 } rm -rf in out errors in2 + unset AFL_QUIET } rm -f test-instr.plain } || { @@ -421,33 +423,34 @@ test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrumentation.so && { } rm -f test-instr.plain - echo foobar.c > whitelist.txt - AFL_LLVM_WHITELIST=whitelist.txt ../afl-clang-lto -o test-compcov test-compcov.c > test.out 2>&1 - test -e test-compcov && { - grep -q "No instrumentation targets found" test.out && { - $ECHO "$GREEN[+] llvm_mode LTO whitelist feature works correctly" - } || { - $ECHO "$RED[!] llvm_mode LTO whitelist feature failed" - CODE=1 - } - } || { - $ECHO "$RED[!] llvm_mode LTO whitelist feature compilation failed" - CODE=1 - } - rm -f test-compcov test.out whitelist.txt - ../afl-clang-lto -o test-persistent ../experimental/persistent_demo/persistent_demo.c > /dev/null 2>&1 - test -e test-persistent && { - echo foo | ../afl-showmap -o /dev/null -q -r ./test-persistent && { - $ECHO "$GREEN[+] llvm_mode LTO persistent mode feature works correctly" - } || { - $ECHO "$RED[!] llvm_mode LTO persistent mode feature failed to work" - CODE=1 - } - } || { - $ECHO "$RED[!] llvm_mode LTO persistent mode feature compilation failed" - CODE=1 - } - rm -f test-persistent +# Disabled whitelist and persistent until I have a different solution -mh +# echo foobar.c > whitelist.txt +# AFL_LLVM_WHITELIST=whitelist.txt ../afl-clang-lto -o test-compcov test-compcov.c > test.out 2>&1 +# test -e test-compcov && { +# grep -q "No instrumentation targets found" test.out && { +# $ECHO "$GREEN[+] llvm_mode LTO whitelist feature works correctly" +# } || { +# $ECHO "$RED[!] llvm_mode LTO whitelist feature failed" +# CODE=1 +# } +# } || { +# $ECHO "$RED[!] llvm_mode LTO whitelist feature compilation failed" +# CODE=1 +# } +# rm -f test-compcov test.out whitelist.txt +# ../afl-clang-lto -o test-persistent ../experimental/persistent_demo/persistent_demo.c > /dev/null 2>&1 +# test -e test-persistent && { +# echo foo | ../afl-showmap -o /dev/null -q -r ./test-persistent && { +# $ECHO "$GREEN[+] llvm_mode LTO persistent mode feature works correctly" +# } || { +# $ECHO "$RED[!] llvm_mode LTO persistent mode feature failed to work" +# CODE=1 +# } +# } || { +# $ECHO "$RED[!] llvm_mode LTO persistent mode feature compilation failed" +# CODE=1 +# } +# rm -f test-persistent } || { $ECHO "$YELLOW[-] LTO llvm_mode not compiled, cannot test" INCOMPLETE=1 -- cgit 1.4.1 From 3ac568c40cad0e7a282de7700fac8001d80de950 Mon Sep 17 00:00:00 2001 From: Dominik Maier Date: Thu, 5 Mar 2020 20:23:04 +0100 Subject: Fix leaks when stopping afl (#228) --- src/afl-common.c | 1 + src/afl-fuzz-run.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/afl-common.c b/src/afl-common.c index 46d7de26..20fc424a 100644 --- a/src/afl-common.c +++ b/src/afl-common.c @@ -156,6 +156,7 @@ char** get_qemu_argv(u8* own_loc, char** argv, int argc) { if (!access(BIN_PATH "/afl-qemu-trace", X_OK)) { + ck_free(cp); target_path = new_argv[0] = ck_strdup(BIN_PATH "/afl-qemu-trace"); return new_argv; diff --git a/src/afl-fuzz-run.c b/src/afl-fuzz-run.c index 56c52c9b..58985d8b 100644 --- a/src/afl-fuzz-run.c +++ b/src/afl-fuzz-run.c @@ -643,7 +643,7 @@ void sync_fuzzers(char** argv) { fault = run_target(argv, exec_tmout); - if (stop_soon) return; + if (stop_soon) goto close_sync; syncing_party = sd_ent->d_name; queued_imported += save_if_interesting(argv, mem, st.st_size, fault); @@ -662,6 +662,7 @@ void sync_fuzzers(char** argv) { ck_write(id_fd, &next_min_accept, sizeof(u32), qd_synced_path); +close_sync: close(id_fd); closedir(qd); ck_free(qd_path); -- cgit 1.4.1