diff --git a/internal/fuzz/oss-fuzz-build.sh b/internal/fuzz/oss-fuzz-build.sh new file mode 100644 index 00000000..ad3ffd79 --- /dev/null +++ b/internal/fuzz/oss-fuzz-build.sh @@ -0,0 +1,25 @@ +# Copyright 2020 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# This script is executed by OSS-Fuzz's build to create fuzzer binaries. + +function compile_fuzzer { + path=$1 + function=$2 + fuzzer=$3 + + # Instrument all Go files relevant to this fuzzer + go-fuzz-build -tags=protolegacy -libfuzzer -func $function -o $fuzzer.a $path + + # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer +} + +for x in internal/fuzz/*; do + if [ -d $x/corpus ]; then + name=$(basename $x) + compile_fuzzer ./$x Fuzz $name + zip -jr $OUT/${name}_seed_corpus.zip $x/corpus + fi +done