2019-10-22 10:35:52 -07:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
# A wrapper around ./zcutil/build.sh for instrumenting the build with AFL:
|
2019-10-23 12:11:44 -07:00
|
|
|
# ./zcutil/afl/afl-build.sh <directory where AFL is installed> <fuzz case>
|
2019-10-22 10:35:52 -07:00
|
|
|
# You may obtain a copy of AFL using ./zcutil/afl/afl-get.sh.
|
|
|
|
|
|
|
|
set -eu -o pipefail
|
|
|
|
|
2019-10-23 12:11:44 -07:00
|
|
|
export AFL_INSTALL_DIR=$(realpath "$1")
|
|
|
|
FUZZ_CASE="$2"
|
|
|
|
shift 2
|
2019-10-22 10:35:52 -07:00
|
|
|
export AFL_LOG_DIR="$(pwd)"
|
|
|
|
export ZCUTIL=$(realpath "./zcutil")
|
2019-10-23 12:11:44 -07:00
|
|
|
|
|
|
|
cp "./src/fuzzing/$FUZZ_CASE/fuzz.cpp" src/fuzz.cpp
|
2019-10-22 10:35:52 -07:00
|
|
|
|
2019-10-22 11:58:40 -07:00
|
|
|
CONFIGURE_FLAGS="--enable-tests=no --enable-fuzz-main" "$ZCUTIL/build.sh" "CC=$ZCUTIL/afl/zcash-wrapper-gcc" "CXX=$ZCUTIL/afl/zcash-wrapper-g++" AFL_HARDEN=1 "$@"
|
2019-10-23 12:11:44 -07:00
|
|
|
|
|
|
|
echo "You can now run AFL as follows:"
|
|
|
|
echo "$ ./zcutil/afl/afl-run.sh '$AFL_INSTALL_DIR' '$FUZZ_CASE'"
|