@marcel91200 / caddy Mirror · read-only / commits / 8da9eaee
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 14, 05:15 UTC

ci: fuzz: switch engine from libfuzzer to native go-fuzz (#3194)

Mohammed Al Sahaf committed Mar 27, 2020 at 03:20 UTC 8da9eaee3414759d2665e274e8066a243c1171ed
5 files changed +15 -15
.github/workflows/fuzzing.yml
+15 -11
@@ -36,10 +36,6 @@ jobs:
36 # If we decide we need to prevent this from running on forks, we can use this line:
37 # if: github.repository == 'caddyserver/caddy'
38 run: |
39 - # Install Clang-7.0 because other versions seem to be missing the file libclang_rt.fuzzer-x86_64.a
40 - sudo add-apt-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main"
41 - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
42 - sudo apt update && sudo apt install -y clang-7 lldb-7 lld-7
39
40 go get -v github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build
41 wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/v2.4.77/fuzzit_Linux_x86_64
@@ -51,7 +47,13 @@ jobs:
47 continue-on-error: true
48 env:
49 FUZZIT_API_KEY: ${{ secrets.FUZZIT_API_KEY }}
50 + SYSTEM_PULLREQUEST_SOURCEBRANCH: ${{ github.ref }}
51 + BUILD_SOURCEVERSION: ${{ github.sha }}
52 run: |
53 + # debug
54 + echo "PR Source Branch: $SYSTEM_PULLREQUEST_SOURCEBRANCH"
55 + echo "Source version: $BUILD_SOURCEVERSION"
56 +
57 declare -A fuzzers_funcs=(\
58 ["./caddyconfig/httpcaddyfile/addresses_fuzz.go"]="FuzzParseAddress" \
59 ["./caddyconfig/caddyfile/parse_fuzz.go"]="FuzzParseCaddyfile" \
@@ -67,18 +69,20 @@ jobs:
69 )
70
71 fuzz_type="local-regression"
70 - if [[ ${{ github.event_name }} == "schedule" ]]; then
72 + if [[ "${{ github.event_name }}" == "schedule" ]]; then
73 fuzz_type="fuzzing"
74 fi
73 - echo "Github event: ${{ github.event_name }}"
75 +
76 echo "Fuzzing type: $fuzz_type"
77
78 for f in $(find . -name \*_fuzz.go); do
77 - FUZZER_DIRECTORY=$(dirname $f)
79 + FUZZER_DIRECTORY=$(dirname "$f")
80 +
81 echo "go-fuzz-build func ${fuzzers_funcs[$f]} residing in $f"
79 - go-fuzz-build -func "${fuzzers_funcs[$f]}" -libfuzzer -o "$FUZZER_DIRECTORY/${fuzzers_targets[$f]}.a" $FUZZER_DIRECTORY
80 - echo "Generating fuzzer binary of func ${fuzzers_funcs[$f]} which resides in $f"
81 - clang-7 -fsanitize=fuzzer "$FUZZER_DIRECTORY/${fuzzers_targets[$f]}.a" -o "$FUZZER_DIRECTORY/${fuzzers_targets[$f]}"
82 - fuzzit create job caddyserver/${fuzzers_targets[$f]} $FUZZER_DIRECTORY/${fuzzers_targets[$f]} --api-key ${FUZZIT_API_KEY} --type "${fuzz_type}" --branch "${SYSTEM_PULLREQUEST_SOURCEBRANCH}" --revision "${BUILD_SOURCEVERSION}"
82 +
83 + go-fuzz-build -func "${fuzzers_funcs[$f]}" -o "$FUZZER_DIRECTORY/${fuzzers_targets[$f]}.zip" "$FUZZER_DIRECTORY"
84 +
85 + fuzzit create job --engine go-fuzz caddyserver/"${fuzzers_targets[$f]}" "$FUZZER_DIRECTORY"/"${fuzzers_targets[$f]}.zip" --api-key "${FUZZIT_API_KEY}" --type "${fuzz_type}" --branch "${SYSTEM_PULLREQUEST_SOURCEBRANCH}" --revision "${BUILD_SOURCEVERSION}"
86 +
87 echo "Completed $f"
88 done
caddyconfig/caddyfile/parse_fuzz.go
-1
@@ -13,7 +13,6 @@
13 // limitations under the License.
14
15 // +build gofuzz
16 -// +build gofuzz_libfuzzer
16
17 package caddyfile
18
caddyconfig/httpcaddyfile/addresses_fuzz.go
-1
@@ -13,7 +13,6 @@
13 // limitations under the License.
14
15 // +build gofuzz
16 -// +build gofuzz_libfuzzer
16
17 package httpcaddyfile
18
listeners_fuzz.go
-1
@@ -13,7 +13,6 @@
13 // limitations under the License.
14
15 // +build gofuzz
16 -// +build gofuzz_libfuzzer
16
17 package caddy
18
replacer_fuzz.go
-1
@@ -13,7 +13,6 @@
13 // limitations under the License.
14
15 // +build gofuzz
16 -// +build gofuzz_libfuzzer
16
17 package caddy
18