mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-01-09 03:39:24 +00:00
26 lines
757 B
Bash
26 lines
757 B
Bash
|
# 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
|