[tor-commits] [tor/master] Add a script for running multiple fuzzing sessions on multiple cores
nickm at torproject.org
nickm at torproject.org
Mon Jan 30 13:45:47 UTC 2017
commit 0fb1156e9f0ee62e9b704e9e56ebae3c8d436218
Author: teor <teor2345 at gmail.com>
Date: Tue Dec 13 16:23:12 2016 +1100
Add a script for running multiple fuzzing sessions on multiple cores
---
doc/HACKING/Fuzzing.md | 1 +
src/test/fuzz_multi.sh | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/doc/HACKING/Fuzzing.md b/doc/HACKING/Fuzzing.md
index 7ba7f49..703f028 100644
--- a/doc/HACKING/Fuzzing.md
+++ b/doc/HACKING/Fuzzing.md
@@ -42,6 +42,7 @@ To Run:
../afl/afl-fuzz -i src/test/fuzz/fuzz_dir_testcase -o src/test/fuzz/fuzz_dir_findings -m <asan-memory-limit> -- src/test/fuzz_dir
AFL has a multi-core mode, check the documentation for details.
+You might find the included fuzz-multi.sh script useful for this.
macOS (OS X) requires slightly more preparation, including:
* using afl-clang (or afl-clang-fast from the llvm directory)
diff --git a/src/test/fuzz_multi.sh b/src/test/fuzz_multi.sh
new file mode 100755
index 0000000..b4a17ed
--- /dev/null
+++ b/src/test/fuzz_multi.sh
@@ -0,0 +1,34 @@
+MEMLIMIT_BYTES=21990500990976
+
+N_CPUS=1
+if [ $# -ge 1 ]; then
+ N_CPUS="$1"
+ shift
+fi
+
+FILTER=echo
+
+for i in `seq -w "$N_CPUS"`; do
+ if [ "$i" -eq 1 ]; then
+ if [ "$N_CPUS" -eq 1 ]; then
+ INSTANCE=""
+ NUMBER=""
+ else
+ INSTANCE="-M"
+ NUMBER="$i"
+ fi
+ else
+ INSTANCE="-S"
+ NUMBER="$i"
+ fi
+ # use whatever remains on the command-line to prefix the fuzzer command
+ # you have to copy and paste and run these commands yourself
+ "$FILTER" "$@" \
+ ../afl/afl-fuzz \
+ -i src/test/fuzz/fuzz_dir_testcase \
+ -o src/test/fuzz/fuzz_dir_findings \
+ -x src/test/fuzz/fuzz_dir_dictionary/fuzz_dir_http_header.dct \
+ -m "$MEMLIMIT_BYTES" \
+ "$INSTANCE" "$NUMBER" \
+ -- src/test/fuzz_dir
+done
More information about the tor-commits
mailing list