protobuf-go/reflect
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
..
protodesc reflect/protoregistry: add (*Types).Register{Message,Enum,Extension} 2019-10-31 16:23:42 +00:00
protoreflect reflect/protoreflect: remove nullability from repeated extension fields 2019-11-05 18:31:30 +00:00
protoregistry reflect/protoregistry: add (*Types).Register{Message,Enum,Extension} 2019-10-31 16:23:42 +00:00