Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions projects/goipp/fuzzer/fuzz_attribute_unpacking.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* Fuzz target for goipp's attribute unpacking functionality.
*/
package fuzzer

import (
"strings"
"testing"
"github.com/OpenPrinting/goipp"
)

func FuzzAttributeUnpacking(f *testing.F) {
f.Fuzz(func(t *testing.T, tag goipp.Tag, data []byte) {
attr := goipp.Attribute{Name: "test-attr"}
err := attr.unpack(tag, data)
// if unpack returns an error, ensure it mentions the tag in the message
if err != nil {
if !strings.Contains(err.Error(), tag.String()) {
t.Errorf("Error should contain tag information: %v", err)
}
}
})
}
7 changes: 7 additions & 0 deletions projects/goipp/oss_fuzz_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ cp $SRC/fuzzing/projects/goipp/fuzzer/fuzz_decode_bytes_ex.go $SRC/goipp/fuzzer/
cp $SRC/fuzzing/projects/goipp/fuzzer/fuzz_round_trip.go $SRC/goipp/fuzzer/
cp $SRC/fuzzing/projects/goipp/fuzzer/fuzz_collections.go $SRC/goipp/fuzzer/
cp $SRC/fuzzing/projects/goipp/fuzzer/fuzz_tag_extension.go $SRC/goipp/fuzzer/
cp $SRC/fuzzing/projects/goipp/fuzzer/fuzz_attribute_unpacking.go $SRC/goipp/fuzzer/ # new fuzz target

# Corpus for fuzzers that accept good AND bad messages
mkdir -p $WORK/good_and_bad_ipp_messages_seed_corpus
Expand All @@ -25,6 +26,11 @@ mkdir -p $WORK/extension_tags_seed_corpus
cp $SRC/fuzzing/projects/goipp/seeds/extension_tags_seed_corpus/* $WORK/extension_tags_seed_corpus/
zip -r $OUT/fuzz_tag_extension_seed_corpus.zip extension_tags_seed_corpus/

# Corpus for attribute unpacking seeds
mkdir -p $WORK/attr_unpack_seed_corpus
cp $SRC/fuzzing/projects/goipp/seeds/attr_unpack_seed_corpus/* $WORK/attr_unpack_seed_corpus/
zip -r $OUT/fuzz_attribute_unpacking_seed_corpus.zip attr_unpack_seed_corpus/

# build dependencies and fuzzers
cd $SRC/goipp
go mod tidy
Expand All @@ -36,3 +42,4 @@ compile_native_go_fuzzer github.com/OpenPrinting/goipp/fuzzer FuzzDecodeBytesEx
compile_native_go_fuzzer github.com/OpenPrinting/goipp/fuzzer FuzzRoundTrip fuzz_round_trip
compile_native_go_fuzzer github.com/OpenPrinting/goipp/fuzzer FuzzCollections fuzz_collections
compile_native_go_fuzzer github.com/OpenPrinting/goipp/fuzzer FuzzTagExtension fuzz_tag_extension
compile_native_go_fuzzer github.com/OpenPrinting/goipp/fuzzer FuzzAttributeUnpacking fuzz_attribute_unpacking # new fuzzer
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#����
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Bhello
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@