Skip to content

Commit

Permalink
Fuzzing: Add 3 fuzzers
Browse files Browse the repository at this point in the history
Signed-off-by: AdamKorcz <adam@adalogics.com>
  • Loading branch information
AdamKorcz committed Sep 7, 2021
1 parent 01f589c commit ac255e6
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 0 deletions.
16 changes: 16 additions & 0 deletions configuration/fuzz.go
Original file line number Diff line number Diff line change
@@ -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
}
13 changes: 13 additions & 0 deletions reference/fuzz.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// +build gofuzz

package reference

// fuzzParseNormalizedNamed implements a fuzzer
// that targets ParseNormalizedNamed
// Please export the function by changing its
// name before building the fuzzer.
// nolint:deadcode
func fuzzParseNormalizedNamed(data []byte) int {
_, _ = ParseNormalizedNamed(string(data))
return 1
}
12 changes: 12 additions & 0 deletions registry/api/v2/fuzz.go
Original file line number Diff line number Diff line change
@@ -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 changes: 9 additions & 0 deletions script/oss_fuzz_build.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit ac255e6

Please sign in to comment.