Merge pull request #3458 from AdamKorcz/fuzz1

Fuzzing: Add 3 fuzzers
This commit is contained in:
Milos Gajdos 2021-12-20 09:34:15 +00:00 committed by GitHub
commit 020bcce59d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 49 additions and 0 deletions

16
configuration/fuzz.go Normal file
View file

@ -0,0 +1,16 @@
// +build gofuzz
package configuration
import (
"bytes"
)
// ParserFuzzer implements a fuzzer that targets Parser()
// Export before building
// nolint:deadcode
func parserFuzzer(data []byte) int {
rd := bytes.NewReader(data)
_, _ = Parse(rd)
return 1
}

12
reference/fuzz.go Normal file
View file

@ -0,0 +1,12 @@
// +build gofuzz
package reference
// fuzzParseNormalizedNamed implements a fuzzer
// that targets ParseNormalizedNamed
// Export before building the fuzzer.
// nolint:deadcode
func fuzzParseNormalizedNamed(data []byte) int {
_, _ = ParseNormalizedNamed(string(data))
return 1
}

12
registry/api/v2/fuzz.go Normal file
View file

@ -0,0 +1,12 @@
// +build gofuzz
package v2
// FuzzParseForwardedHeader implements a fuzzer
// that targets parseForwardedHeader
// Export before building
// nolint:deadcode
func fuzzParseForwardedHeader(data []byte) int {
_, _, _ = parseForwardedHeader(string(data))
return 1
}

9
script/oss_fuzz_build.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash -eu
sed 's/parserFuzzer/ParserFuzzer/g' -i ./configuration/fuzz.go
sed 's/fuzzParseNormalizedNamed/FuzzParseNormalizedNamed/g' -i ./reference/fuzz.go
sed 's/fuzzParseForwardedHeader/FuzzParseForwardedHeader/g' -i ./registry/api/v2/fuzz.go
compile_go_fuzzer github.com/distribution/distribution/v3/configuration ParserFuzzer parser_fuzzer
compile_go_fuzzer github.com/distribution/distribution/v3/reference FuzzParseNormalizedNamed fuzz_parsed_normalized_named
compile_go_fuzzer github.com/distribution/distribution/v3/registry/api/v2 FuzzParseForwardedHeader fuzz_parse_forwarded_header