Project: Percona Server for MySQL (App Definition and Development / Database)
File: CHANGELOG.md

Template: (by ) Next 0.10.2 (2023-01-31) (discovered by ) Actual libcbor functionality not affected, bug was in the test suite 0.10.1 (2022-12-30) (discovered by ) 0.10.0 (2022-12-29) Make the buffersize optional in `cborserialize_alloc` (by ) BREAKING: Improved half-float encoding for denormalized numbers. (by ) 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 (by ) 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 (by ) ( by ) Potentially BUILD BREAKING: Warning: This may cause new build warnings and (in rare cases, depending on your configuration) errors BREAKING: . Previously, the failures were not handled in the interface. Now, `cbor_copy` may return `NULL` upon failure; clients should check the return value - This should significantly speed up `cborserializealloc` for large items by avoiding multiple reallocation iterations Clients should not use the return value of `cborserializealloc`. It may be removed in the future. BUILD BREAKING: `cborsetallocs` will always be enabled from now on Note: 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) Improved pkg-config paths handling (by ) Use explicit math.h linkage BREAKING: Fixed handling of items that exceed the host size_t range Callbacks for bytestrings, strings, arrays, and maps use uint64t instead of sizet to allow handling of large items that exceed sizet even if sizet < 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 Added a build example (by ) 0.8.0 (2020-09-20) BUILD BREAKING: Use BUILDSHAREDLIBS to determine how to build libraries (fixed Windows linkage) (by ) BREAKING: Fix `cbortagitem` not increasing the reference count on the tagged item reference it returns ] (discovered bt ) 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: `cborstreamdecode` will set `CBORDECODERNEDATA` instead if the input buffer is empty to set `cbordecoderresult.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 ) Fixed several minor manpage issues (discovered by )

(2020-04-25) Fix bad encoding of NaN half-floats (discovered by ) Warning: Previous versions encoded NaNs as `0xf9e700` instead of `0xf97e00`; if you rely on the broken behavior, this will be a breaking change Fix potentially bad encoding of negative half-float with exponent < -14 (discovered by ) BREAKING: Improved bool support Rename `cborctrlisbool` to `cborget_bool` and fix the behavior Add `cborsetbool` Fix memoryallocationtest breaking the build without CBORCUSTOMALLOC (by ) Breaking: (by ) If your usecase requires parsing very deeply nested structures, you might need to increase the default 2k limit via `CBORMAXSTACK_SIZE` Enable LTO/IPO based on (by ) 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) - 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 . Warning: All previous releases will be identified as 0.0 by the linker. Fix & prevent heap overflow error in example code (by @nevun) Correctly set OSX dynamic library version BREAKING: Fix handling & cleanup of failed memory allocation in constructor and builder helper functions All cbornew 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 Fix issue possible memory corruption bug on repeated cbor(byte)stringadd_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 , ] 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 Improvements to C++ linkage (corrected `cboremptycallbacks`, fixed `restrict` pointers) (by Dennis Bijwaard) Fixed Linux installation directory depending on architecture (by jvymazal) Improved 32-bit support Fixed MSVC compatibility Fixed and improved half-float encoding , ] 0.4.0 (2015-12-25) Breaks build & header compatibility due to: Improved build configuration and feature check macros Endianess 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` `cborbuildnegint8`, 16, 32, 64, matching asserts `cborbuildstringn` `cborbuildtag` `cborbuildfloat2`, ... 0.2.1 (2015-05-17) C99 support 0.2.0 (2015-05-17) `cborctrlbool` -> `cborctrlis_bool` Added `cborarrayallocated` & map equivalent Overhauled 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!