protobuf-go/internal/fuzz
Damien Neil a0a54b8005 reflect/protoreflect: remove nullability from repeated extension fields
Remove repeated extension fields from the set of nullable fields,
so that Has reports false and Range does not visit a a zero-length
repeated extension field.

This corrects a fuzzer-detected case where unmarshaling and remarshaling
a wire-format message could result in a semantic change. For a repeated
extension field in non-packed encoding, unmarshaling a packed
representation of the field would result in a message which Has the
extension. Remarshaling it would discard the the field.

Fixes golang.org/protobuf#975

Change-Id: Ie836559c93d218db5b5201742a3b8ebbaacf54ed
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/204897
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Joe Tsai <joetsai@google.com>
2019-11-05 18:31:30 +00:00
..
wire reflect/protoreflect: remove nullability from repeated extension fields 2019-11-05 18:31:30 +00:00
README.md internal/fuzz: add basic fuzzing target for Marshal/Unmarshal 2019-10-11 16:00:11 +00:00

Fuzzing

Fuzzing support using go-fuzz.

Basic operation:

$ go install github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build
$ cd internal/fuzz/{fuzzer}
$ GOFUZZ111MODULE=on go-fuzz-build .
$ go-fuzz