protobuf-go/reflect/protoreflect
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
..
proto_test.go
proto.go reflect/protoreflect: emit valid Go from GoString 2019-09-05 21:59:19 +00:00
source.go reflect/protoreflect: add FileDescriptor.SourceLocations 2019-07-13 00:15:59 +00:00
type.go all: remove {Enum,Message,Extension}Type.GoType methods 2019-10-07 21:08:26 +00:00
value_pure.go all: change module to google.golang.org/protobuf 2019-05-14 17:28:29 +00:00
value_test.go all: rename Vector as List 2018-11-14 23:03:53 +00:00
value_union.go reflect/protoreflect: add non-allocating Value constructors 2019-08-26 17:48:05 +00:00
value_unsafe.go all: change module to google.golang.org/protobuf 2019-05-14 17:28:29 +00:00
value.go reflect/protoreflect: remove nullability from repeated extension fields 2019-11-05 18:31:30 +00:00