diff --git a/docs/getting-started/new-project-guide/go_lang.md b/docs/getting-started/new-project-guide/go_lang.md index f58716dfc1b7..be7482c33ba3 100644 --- a/docs/getting-started/new-project-guide/go_lang.md +++ b/docs/getting-started/new-project-guide/go_lang.md @@ -82,11 +82,11 @@ function compile_fuzzer { function=$2 fuzzer=$3 - # Instrument all Go files relevant to this fuzzer + # Compile and instrument all Go files relevant to this fuzz target. go-fuzz -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 + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/$fuzzer } compile_fuzzer ./pkg/compiler Fuzz compiler_fuzzer diff --git a/projects/go-attestation/build.sh b/projects/go-attestation/build.sh index 92d6de56c20c..20fef0038ebb 100755 --- a/projects/go-attestation/build.sh +++ b/projects/go-attestation/build.sh @@ -15,20 +15,23 @@ # ################################################################################ -# Based on the function from oss-fuzz/projects/golang/build.sh script. function compile_fuzzer { package=$1 function=$2 fuzzer=$3 - # Instrument all Go files relevant to this fuzzer + # Compile and instrument all Go files relevant to this fuzz target. go-fuzz -func $function -o $fuzzer.a $package - # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary - $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o $OUT/$fuzzer + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/$fuzzer } -compile_fuzzer github.com/google/go-attestation/attest FuzzParseEventLog parse_event_log_fuzzer -compile_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic12 parse_ak_public12_fuzzer -compile_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic20 parse_ak_public20_fuzzer -compile_fuzzer github.com/google/go-attestation/attest FuzzParseEKCertificate parse_ek_certificate_fuzzer +compile_fuzzer github.com/google/go-attestation/attest FuzzParseEventLog \ + parse_event_log_fuzzer +compile_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic12 \ + parse_ak_public12_fuzzer +compile_fuzzer github.com/google/go-attestation/attest FuzzParseAKPublic20 \ + parse_ak_public20_fuzzer +compile_fuzzer github.com/google/go-attestation/attest FuzzParseEKCertificate \ + parse_ek_certificate_fuzzer diff --git a/projects/go-dns/build.sh b/projects/go-dns/build.sh index e2c3f29ffe99..b9309993de7c 100755 --- a/projects/go-dns/build.sh +++ b/projects/go-dns/build.sh @@ -15,19 +15,18 @@ # ################################################################################ -# build target function function compile_fuzzer { path=$1 function=$2 fuzzer=$3 - # Instrument all Go files relevant to this fuzzer + # Compile and instrument all Go files relevant to this fuzz target. go-fuzz -tags fuzz -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 + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/$fuzzer } -#same as usual except for added -tags fuzz -compile_fuzzer /root/go/src/github.com/miekg/dns/ FuzzNewRR fuzz_newrr -compile_fuzzer /root/go/src/github.com/miekg/dns/ Fuzz fuzz_msg_unpack +# Same as usual except for added -tags fuzz. +compile_fuzzer github.com/miekg/dns FuzzNewRR fuzz_newrr +compile_fuzzer github.com/miekg/dns Fuzz fuzz_msg_unpack diff --git a/projects/go-json-iterator/build.sh b/projects/go-json-iterator/build.sh index 476de37d828b..1d2bc4728319 100755 --- a/projects/go-json-iterator/build.sh +++ b/projects/go-json-iterator/build.sh @@ -15,17 +15,16 @@ # ################################################################################ -# build target function function compile_fuzzer { path=$1 function=$2 fuzzer=$3 - # Instrument all Go files relevant to this fuzzer + # Compile and instrument all Go files relevant to this fuzz target. go-fuzz -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 + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/$fuzzer } compile_fuzzer . Fuzz fuzz_json diff --git a/projects/golang/build.sh b/projects/golang/build.sh index 147192ebdbbe..f207a5931577 100755 --- a/projects/golang/build.sh +++ b/projects/golang/build.sh @@ -13,23 +13,17 @@ # limitations under the License. function compile_fuzzer { - fuzzer=$(basename $1) + fuzzer=$(basename $1) - # Instrument all Go files relevant to this fuzzer, compile and store in $fuzzer.a - go-fuzz -o $fuzzer.a github.com/dvyukov/go-fuzz-corpus/$fuzzer + # Compile and instrument all Go files relevant to this fuzz target. + go-fuzz -o $fuzzer.a github.com/dvyukov/go-fuzz-corpus/$fuzzer - # Instrumented, compiled Go ($fuzzer.a) + libFuzzer = fuzzer binary - $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -lpthread -o fuzzer-$fuzzer + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/fuzzer-$fuzzer - # Copy the fuzzer binary - cp fuzzer-$fuzzer $OUT - - # Pack the seed corpus - zip -r fuzzer-${fuzzer}_seed_corpus.zip \ - $GOPATH/src/github.com/dvyukov/go-fuzz-corpus/$fuzzer/corpus - - # Copy the seed corpus - cp fuzzer-${fuzzer}_seed_corpus.zip $OUT + # Pack the seed corpus + zip -r $OUT/fuzzer-${fuzzer}_seed_corpus.zip \ + $GOPATH/src/github.com/dvyukov/go-fuzz-corpus/$fuzzer/corpus } export -f compile_fuzzer diff --git a/projects/gonids/Dockerfile b/projects/gonids/Dockerfile index 6ca5bd5e8e0f..7d82c0a13e7d 100644 --- a/projects/gonids/Dockerfile +++ b/projects/gonids/Dockerfile @@ -21,4 +21,4 @@ RUN go get github.com/google/gonids ADD https://rules.emergingthreats.net/open/suricata/emerging.rules.zip emerging.rules.zip COPY build.sh $SRC/ -WORKDIR $SRC/ +WORKDIR $SRC diff --git a/projects/gonids/build.sh b/projects/gonids/build.sh index 5f241aaff258..277b1c59c128 100755 --- a/projects/gonids/build.sh +++ b/projects/gonids/build.sh @@ -15,20 +15,19 @@ # ################################################################################ -# build target function function compile_fuzzer { path=$1 function=$2 fuzzer=$3 - # Instrument all Go files relevant to this fuzzer + # Compile and instrument all Go files relevant to this fuzz target. go-fuzz -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 + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/$fuzzer } -compile_fuzzer /root/go/src/github.com/google/gonids/ FuzzParseRule fuzz_parserule +compile_fuzzer github.com/google/gonids FuzzParseRule fuzz_parserule unzip emerging.rules.zip cd rules diff --git a/projects/kubernetes/build.sh b/projects/kubernetes/build.sh index ff4b0b32877f..802ac6a73ce3 100755 --- a/projects/kubernetes/build.sh +++ b/projects/kubernetes/build.sh @@ -20,17 +20,16 @@ set -o pipefail set -o errexit set -x -# Based on the function from oss-fuzz/projects/golang/build.sh script. function compile_fuzzer { local pkg=$1 local function=$2 local fuzzer="${pkg}_${function}" - # Instrument all Go files relevant to this fuzzer + # Compile and instrument all Go files relevant to this fuzz target. go-fuzz -func "${function}" -o "${fuzzer}.a" "k8s.io/kubernetes/test/fuzz/${pkg}" - # Instrumented, compiled Go ($fuzzer.a) + fuzzing engine = fuzzer binary - $CXX $CXXFLAGS $LIB_FUZZING_ENGINE "${fuzzer}.a" -lpthread -o "${OUT}/${fuzzer}" + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE "${fuzzer}.a" -o "${OUT}/${fuzzer}" } compile_fuzzer "yaml" "FuzzDurationStrict" diff --git a/projects/syzkaller/build.sh b/projects/syzkaller/build.sh index 2977b577af3c..744ae34a0099 100755 --- a/projects/syzkaller/build.sh +++ b/projects/syzkaller/build.sh @@ -15,17 +15,16 @@ # ################################################################################ -# Based on the function from oss-fuzz/projects/golang/build.sh script. function compile_fuzzer { path=$1 function=$2 fuzzer=$3 - # Instrument all Go files relevant to this fuzzer + # Compile and instrument all Go files relevant to this fuzz target. go-fuzz -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 + # Link Go code ($fuzzer.a) with fuzzing engine to produce fuzz target binary. + $CXX $CXXFLAGS $LIB_FUZZING_ENGINE $fuzzer.a -o $OUT/$fuzzer } compile_fuzzer ./pkg/compiler Fuzz compiler_fuzzer