This release fixes potential panics when decoding a CBOR map whose key decodes to an uncomparable Go value under certain conditions.
Not affected: user apps that don't register tag types and don't use map key types that are either named empty interfaces (e.g. type MyAny any) or contain interfaces.
These potential panics can be encountered when one of these two conditions is met:
- user application registers a tag type (via
TagSetinterface) that is an array or struct with uncomparable orinterface{}element or field type, or - user application specifies a destination Go map whose key type is a named empty interface type or a type containing an interface.
This was identified while improving tests and reviewing code for an upcoming release.
Tests and fuzz tests were extended to cover this bug.
Upgrading to v2.9.4 is recommended.
What's Changed
- Fix panic decoding uncomparable map keys under certain conditions by @fxamacker in #817
Full Changelog: v2.9.3...v2.9.4