diff --git a/contrib/fuzz/archive_fuzzer.go b/contrib/fuzz/archive_fuzzer.go index 941467b7e..534cbd687 100644 --- a/contrib/fuzz/archive_fuzzer.go +++ b/contrib/fuzz/archive_fuzzer.go @@ -67,7 +67,7 @@ func FuzzApply(data []byte) int { // that targets archive.ImportIndex() func FuzzImportIndex(data []byte) int { f := fuzz.NewConsumer(data) - tarBytes, err := f.TarBytes() + tarBytes, err := f.GetBytes() if err != nil { return 0 } diff --git a/contrib/fuzz/fuzz_FuzzImportIndex.dict b/contrib/fuzz/fuzz_FuzzImportIndex.dict new file mode 100644 index 000000000..fe68e7805 --- /dev/null +++ b/contrib/fuzz/fuzz_FuzzImportIndex.dict @@ -0,0 +1,2 @@ +"oci-layout" +"manifest.json" diff --git a/contrib/fuzz/fuzz_FuzzImportIndex.options b/contrib/fuzz/fuzz_FuzzImportIndex.options new file mode 100644 index 000000000..6ccf0d403 --- /dev/null +++ b/contrib/fuzz/fuzz_FuzzImportIndex.options @@ -0,0 +1,3 @@ +[libfuzzer] +max_len = 1500000 +len_control = 0 diff --git a/contrib/fuzz/oss_fuzz_build.sh b/contrib/fuzz/oss_fuzz_build.sh index 74fe2bcf8..84fdf0263 100755 --- a/contrib/fuzz/oss_fuzz_build.sh +++ b/contrib/fuzz/oss_fuzz_build.sh @@ -38,6 +38,10 @@ compile_fuzzers() { done } +# This is from https://github.com/AdamKorcz/instrumentation +cd $SRC/instrumentation +go run main.go $SRC/containerd/images + apt-get update && apt-get install -y wget cd $SRC wget --quiet https://go.dev/dl/go1.19.1.linux-amd64.tar.gz @@ -89,3 +93,6 @@ sed -i 's/\/run\/containerd-test/\/tmp\/containerd-test/g' $SRC/containerd/integ cd integration/client compile_fuzzers '^func FuzzInteg.*data' compile_go_fuzzer vendor + +cp $SRC/containerd/contrib/fuzz/*.options $OUT/ +cp $SRC/containerd/contrib/fuzz/*.dict $OUT/