Template:
Next
0.11.0 (2024-02-04)
Improvements to
cbor_describe
BREAKING:
cbor_load
will no longer fail on input strings that are well-formed but not valid UTF-8If you were relying on the validation, please check the result using
cbor_string_codepoint_count
instead
BREAKING: All decoders like
cbor_load
andcbor_stream_decode
will accept all well-formed tag values (bug discovered by dskern-github)Previously, decoding of certain values would fail with
CBOR_ERR_MALFORMATED
orCBOR_DECODER_ERROR
This also makes decoding symmetrical with serialization, which already accepts all values
0.10.2 (2023-01-31)
Fixed minor test bug causing failures for x86 Linux (discovered by trofi)
Actual libcbor functionality not affected, bug was in the test suite
0.10.1 (2022-12-30)
Fix a regression in
cbor_serialize_alloc
that caused serialization of zero-length strings and bytestrings or byte/strings with zero-length chunks to fail (discovered by martelletto)
0.10.0 (2022-12-29)
Make the buffer_size optional in
cbor_serialize_alloc
[#205] (by hughsie)BREAKING: Improved half-float encoding for denormalized numbers. [#208] (by ranvis)
Denormalized half-floats will now preserve data in the mantissa
Note: Half-float NaNs still lose data (https://github.com/PJK/libcbor/issues/215)
BUILD BREAKING: Minimum CMake version is 3.0 [#201] (by thewtex@)
See https://repology.org/project/cmake/versions for support; the vast majority of users should not be affected.
Fix a potential memory leak when the allocator fails during array or map decoding [#224] (by James-ZHANG)
Fix a memory leak when the allocator fails when adding chunks to indefinite bytestrings. (discovered by James-ZHANG)
Fix a memory leak when the allocator fails when adding chunks to indefinite strings
Potentially BUILD BREAKING: Add nodiscard attributes to most functions
Warning: This may cause new build warnings and (in rare cases, depending on your configuration) errors
BREAKING: Fix
cbor_copy
leaking memory and creating invalid items when the allocator fails.Previously, the failures were not handled in the interface. Now,
cbor_copy
may returnNULL
upon failure; clients should check the return value
Fix
cbor_build_tag
illegal memory behavior when the allocator failsReworked
cbor_serialize_alloc
to allocate the exact amount of memory necessary upfrontThis should significantly speed up
cbor_serialize_alloc
for large items by avoiding multiple reallocation iterationsClients should not use the return value of
cbor_serialize_alloc
. It may be removed in the future.
BUILD BREAKING: Deprecate CBOR_CUSTOM_ALLOC
cbor_set_allocs
will always be enabled from now onNote: The flag will be kept as a no-op triggering a warning when used for one version and then removed completely
0.9.0 (2021-11-14)
Use explicit math.h linkage [#170]
BREAKING: Fixed handling of items that exceed the host size_t range [#186]
Callbacks for bytestrings, strings, arrays, and maps use uint64_t instead of size_t to allow handling of large items that exceed size_t even if size_t < uint64_t
cbor_decode explicitly checks size to avoid overflows (previously broken, potentially resulting in erroneous decoding on affected systems)
The change should be a noop for 64b systems
0.8.0 (2020-09-20)
BUILD BREAKING: Use BUILD_SHARED_LIBS to determine how to build libraries (fixed Windows linkage) [#148] (by intelligide@)
BREAKING: Fix
cbor_tag_item
not increasing the reference count on the tagged item reference it returns [Fixes #109] (discovered bt JohnGilmour)If you have previously relied on the broken behavior, you can use
cbor_move
to emulate as long as the returned handle is an "rvalue"
BREAKING:
CBOR_DECODER_EBUFFER
removed fromcbor_decoder_status
cbor_stream_decode
will setCBOR_DECODER_NEDATA
instead if the input buffer is empty
Fix
cbor_stream_decode
to setcbor_decoder_result.required
to the minimum number of input bytes necessary to receive the next callback (as long as at least one byte was passed) (discovered by woefulwabbit)Fixed several minor manpage issues [#159] (discovered by kloczek@)
0.7.0 (2020-04-25)
Fix bad encoding of NaN half-floats [Fixes #53] (discovered by BSipos-RKF)
Warning: Previous versions encoded NaNs as
0xf9e700
instead of0xf97e00
; if you rely on the broken behavior, this will be a breaking change
Fix potentially bad encoding of negative half-float with exponent < -14 [Fixes #112] (discovered by yami36)
BREAKING: Improved bool support [Fixes #63]
Rename
cbor_ctrl_is_bool
tocbor_get_bool
and fix the behaviorAdd
cbor_set_bool
Fix memory_allocation_test breaking the build without CBOR_CUSTOM_ALLOC [Fixes #128] (by panlinux)
Fix a potential build issue where cJSON includes may be misconfigured
Breaking: Add a limit on the size of the decoding context stack (by James-ZHANG)
If your usecase requires parsing very deeply nested structures, you might need to increase the default 2k limit via
CBOR_MAX_STACK_SIZE
Enable LTO/IPO based on CheckIPOSupported [#143] (by xanderlent)
If you rely on LTO being enabled and use CMake version older than 3.9, you will need to re-enable it manually or upgrade your CMake
0.6.1 (2020-03-26)
Fix bad shared library version number
Warning: Shared library built from the 0.6.0 release is erroneously marked as version "0.6.0", which makes it incompatible with future releases including the v0.6.X line even though they may be compatible API/ABI-wise. Refer to the documentation for the new SO versioning scheme.
0.6.0 (2020-03-15)
Correctly set .so version [Fixes #52].
Warning: All previous releases will be identified as 0.0 by the linker.
Fix & prevent heap overflow error in example code [#74] [#76] (by @nevun)
Correctly set OSX dynamic library version [Fixes #75]
Fix misplaced 0xFF bytes in maps possibly causing memory corruption
BREAKING: Fix handling & cleanup of failed memory allocation in constructor and builder helper functions [Fixes #84]
All cbor_new_* and cbor_build_* functions will now explicitly return NULL when memory allocation fails
It is up to the client to handle such cases
Globally enforced code style [Fixes #83]
Fix issue possible memory corruption bug on repeated cbor_(byte)string_add_chunk calls with intermittently failing realloc calls
Fix possibly misaligned reads and writes when endian.h is uses or when running on a big-endian machine [Fixes #99, #100]
0.5.0 (2017-02-06)
Remove cmocka from the subtree (always rely on system or user-provided version)
Windows CI
Only build tests if explicitly enabled (
-DWITH_TESTS=ON
)Fixed static header declarations (by cedric-d)
Improved documentation (by Michael Richardson)
Improved
examples/readfile.c
Reworked (re)allocation to handle huge inputs and overflows in size_t [Fixes #16]
Improvements to C++ linkage (corrected
cbor_empty_callbacks
, fixedrestrict
pointers) (by Dennis Bijwaard)Fixed Linux installation directory depending on architecture [Fixes #34] (by jvymazal)
Improved 32-bit support [Fixes #35]
Fixed MSVC compatibility [Fixes #31]
0.4.0 (2015-12-25)
Breaks build & header compatibility due to:
Improved build configuration and feature check macros
Endianness configuration fixes (by Erwin Kroon and David Grigsby)
pkg-config compatibility (by Vincent Bernat)
enable use of versioned SONAME (by Vincent Bernat)
better fuzzer (wasn't random until now, ooops)
0.3.1 (2015-05-21)
documentation and comments improvements, mostly for the API reference
0.3.0 (2015-05-21)
Fixes, polishing, niceties across the code base
Updated examples
cbor_copy
cbor_build_negint8
, 16, 32, 64, matching assertscbor_build_stringn
cbor_build_tag
cbor_build_float2
, ...
0.2.1 (2015-05-17)
C99 support
0.2.0 (2015-05-17)
cbor_ctrl_bool
->cbor_ctrl_is_bool
Added
cbor_array_allocated
& map equivalentOverhauled endianess conversion - ARM now works as expected
'sort.c' example added
Significantly improved and doxyfied documentation
0.1.0 (2015-05-06)
The initial release, yay!