# 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 -tags=protolegacy -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 google.golang.org/protobuf/$x Fuzz $name zip -jr $OUT/${name}_seed_corpus.zip $x/corpus fi done