diff options
author | MarcoFalke <falke.marco@gmail.com> | 2021-05-04 05:08:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-03 20:08:50 -0700 |
commit | aba8d0d871bffad978c85bbe26d57674f61aeb6f (patch) | |
tree | 36b6ee0520e12899c1300a7a7b03e592ccb2f347 /projects/bitcoin-core | |
parent | e9d47ca070d5f75365e9a5021e421a0845e061c5 (diff) | |
download | oss-fuzz-aba8d0d871bffad978c85bbe26d57674f61aeb6f.tar.gz |
bitcoin-core: Add honggfuzz support (#5703)
Diffstat (limited to 'projects/bitcoin-core')
-rwxr-xr-x | projects/bitcoin-core/build.sh | 30 | ||||
-rw-r--r-- | projects/bitcoin-core/project.yaml | 1 |
2 files changed, 18 insertions, 13 deletions
diff --git a/projects/bitcoin-core/build.sh b/projects/bitcoin-core/build.sh index 6574738ba..f45b3ec12 100755 --- a/projects/bitcoin-core/build.sh +++ b/projects/bitcoin-core/build.sh @@ -35,22 +35,26 @@ fi ./autogen.sh -# Limit to one target as temporary workaround for https://github.com/google/oss-fuzz/pull/5699#issuecomment-831030305 -export ONLY_ONE_TARGET="process_messages" -sed -i "s|std::getenv(\"FUZZ\")|\"$ONLY_ONE_TARGET\"|g" "./src/test/fuzz/fuzz.cpp" - # OSS-Fuzz will provide CC, CXX, etc. So only set: # * --enable-fuzz, see https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md # * CONFIG_SITE, see https://github.com/bitcoin/bitcoin/blob/master/depends/README.md -CONFIG_SITE="$PWD/depends/$BUILD_TRIPLET/share/config.site" ./configure --enable-fuzz --with-sanitizers=fuzzer +if [ "$FUZZING_ENGINE" = "libfuzzer" ]; then + CONFIG_SITE="$PWD/depends/$BUILD_TRIPLET/share/config.site" ./configure --enable-fuzz --with-sanitizers=fuzzer +else + # See https://google.github.io/oss-fuzz/getting-started/new-project-guide/#Requirements + CONFIG_SITE="$PWD/depends/$BUILD_TRIPLET/share/config.site" ./configure --enable-fuzz LDFLAGS="$LIB_FUZZING_ENGINE" +fi make -j$(nproc) -mv ./src/test/fuzz/fuzz $OUT/$ONLY_ONE_TARGET - -( - cd assets/fuzz_seed_corpus - for folder in ./${ONLY_ONE_TARGET}*; do - zip --recurse-paths --quiet --junk-paths "$OUT/${folder}_seed_corpus.zip" "${folder}" - done -) +# Limit to a few targets as temporary workaround for https://github.com/google/oss-fuzz/pull/5699#issuecomment-831030305 +FUZZ_TARGETS=( 'process_messages' 'asmap' ) +for fuzz_target in ${FUZZ_TARGETS[@]}; do + sed -i "s|std::getenv(\"FUZZ\")|\"$fuzz_target\"|g" "./src/test/fuzz/fuzz.cpp" + make -j$(nproc) + mv ./src/test/fuzz/fuzz $OUT/$fuzz_target + ( + cd assets/fuzz_seed_corpus + zip --recurse-paths --quiet --junk-paths "$OUT/${fuzz_target}_seed_corpus.zip" "${fuzz_target}" + ) +done diff --git a/projects/bitcoin-core/project.yaml b/projects/bitcoin-core/project.yaml index 05559c5d7..f7cb974ae 100644 --- a/projects/bitcoin-core/project.yaml +++ b/projects/bitcoin-core/project.yaml @@ -16,3 +16,4 @@ architectures: - x86_64 fuzzing_engines: - libfuzzer + - honggfuzz |