Sourced from google.golang.org/protobuf's releases.
v1.28.0
Overview
The release provides a new unmarshal option for limiting the recursion depth when unmarshalling nested messages to prevent stack overflows. (
UnmarshalOptions.RecursionLimit
).Notable changes
New features:
- CL/340489: testing/protocmp: add Message.Unwrap
Documentation improvements:
- CL/339569: reflect/protoreflect: add more docs on Value aliasing
Updated supported versions:
- CL/370055: all: update supported versions
UnmarshalOption RecursionLimit
- CL/385854: all: implement depth limit for unmarshalling
The new
UnmarshalOptions.RecursionLimit
limits the maximum recursion depth when unmarshalling messages. The limit is applied for nested messages. When messages are nested deeper than the specified limit the unmarshalling will fail. If unspecified, a default limit of 10,000 is applied.In addition to the configurable limit for message nesting a non-configurable recursion limit for group nesting of 10,000 was introduced.
Upcoming breakage changes
The default recursion limit of 10,000 introduced in the release is subject to change. We want to align this limit with implementations for other languages in the long term. C++ and Java use a limit of 100 which is also the target for the Go implementation.
32051b4
all: release v1.28.03992ea8
all: implement depth limit for unmarshalinge5db296
all: update supported versions3a9e1dc
all: gofmt all26e8bcb
all: remove unnecessary string([]byte) conversion in fmt.Sprintf with %s5aec41b
testing/protocmp: add Message.Unwrap05be61f
reflect/protoreflect: add more docs on Value aliasingb03064a
all: start v1.27.1-devel