1*5d3e7166SEd MasteTemplate: 2*5d3e7166SEd Maste- [Fix issue X in feature Y](https://github.com/PJK/libcbor/pull/XXX) (by [YYY](https://github.com/YYY)) 3*5d3e7166SEd Maste 410ff414cSEd MasteNext 510ff414cSEd Maste--------------------- 610ff414cSEd Maste 7*5d3e7166SEd Maste0.10.2 (2023-01-31) 8*5d3e7166SEd Maste--------------------- 9*5d3e7166SEd Maste- [Fixed minor test bug causing failures for x86 Linux](https://github.com/PJK/libcbor/pull/266) (discovered by [trofi](https://github.com/PJK/libcbor/issues/263)) 10*5d3e7166SEd Maste - Actual libcbor functionality not affected, bug was in the test suite 11*5d3e7166SEd Maste- [Made tests platform-independent](https://github.com/PJK/libcbor/pull/272) 12*5d3e7166SEd Maste 13*5d3e7166SEd Maste0.10.1 (2022-12-30) 14*5d3e7166SEd Maste--------------------- 15*5d3e7166SEd Maste- [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](https://github.com/PJK/libcbor/pull/260) (discovered by [martelletto](https://github.com/martelletto)) 16*5d3e7166SEd Maste 17*5d3e7166SEd Maste0.10.0 (2022-12-29) 18*5d3e7166SEd Maste--------------------- 19*5d3e7166SEd Maste- Make the buffer_size optional in `cbor_serialize_alloc` [[#205]](https://github.com/PJK/libcbor/pull/205) (by [hughsie](https://github.com/hughsie)) 20*5d3e7166SEd Maste- BREAKING: Improved half-float encoding for denormalized numbers. [[#208]](https://github.com/PJK/libcbor/pull/208) (by [ranvis](https://github.com/ranvis)) 21*5d3e7166SEd Maste - Denormalized half-floats will now preserve data in the mantissa 22*5d3e7166SEd Maste - Note: Half-float NaNs still lose data (https://github.com/PJK/libcbor/issues/215) 23*5d3e7166SEd Maste- BUILD BREAKING: Minimum CMake version is 3.0 [[#201]](https://github.com/PJK/libcbor/pull/201) (by [thewtex@](https://github.com/thewtex)) 24*5d3e7166SEd Maste - See https://repology.org/project/cmake/versions for support; the vast majority of users should not be affected. 25*5d3e7166SEd Maste- Fix a potential memory leak when the allocator fails during array or map decoding [[#224]](https://github.com/PJK/libcbor/pull/224) (by [James-ZHANG](https://github.com/James-ZHANG)) 26*5d3e7166SEd Maste- [Fix a memory leak when the allocator fails when adding chunks to indefinite bytestrings.](https://github.com/PJK/libcbor/pull/242) ([discovered](https://github.com/PJK/libcbor/pull/228) by [James-ZHANG](https://github.com/James-ZHANG)) 27*5d3e7166SEd Maste- [Fix a memory leak when the allocator fails when adding chunks to indefinite strings](https://github.com/PJK/libcbor/pull/246) 28*5d3e7166SEd Maste- Potentially BUILD BREAKING: [Add nodiscard attributes to most functions](https://github.com/PJK/libcbor/pull/248) 29*5d3e7166SEd Maste - **Warning**: This may cause new build warnings and (in rare cases, depending on your configuration) errors 30*5d3e7166SEd Maste- BREAKING: [Fix `cbor_copy` leaking memory and creating invalid items when the allocator fails](https://github.com/PJK/libcbor/pull/249). 31*5d3e7166SEd Maste - Previously, the failures were not handled in the interface. Now, `cbor_copy` may return `NULL` upon failure; clients should check the return value 32*5d3e7166SEd Maste- [Fix `cbor_build_tag` illegal memory behavior when the allocator fails](https://github.com/PJK/libcbor/pull/249) 33*5d3e7166SEd Maste- [Add a new `cbor_serialized_size` API](https://github.com/PJK/libcbor/pull/250) 34*5d3e7166SEd Maste- [Reworked `cbor_serialize_alloc` to allocate the exact amount of memory necessary upfront](https://github.com/PJK/libcbor/pull/251) 35*5d3e7166SEd Maste - This should significantly speed up `cbor_serialize_alloc` for large items by avoiding multiple reallocation iterations 36*5d3e7166SEd Maste - Clients should not use the return value of `cbor_serialize_alloc`. It may be removed in the future. 37*5d3e7166SEd Maste- BUILD BREAKING: [Deprecate CBOR_CUSTOM_ALLOC](https://github.com/PJK/libcbor/pull/237) 38*5d3e7166SEd Maste - `cbor_set_allocs` will always be enabled from now on 39*5d3e7166SEd Maste - Note: The flag will be kept as a no-op triggering a warning when used for one version and then removed completely 40*5d3e7166SEd Maste 41*5d3e7166SEd Maste0.9.0 (2021-11-14) 42*5d3e7166SEd Maste--------------------- 43*5d3e7166SEd Maste- Improved pkg-config paths handling [[#164]](https://github.com/PJK/libcbor/pull/164) (by [jtojnar@](https://github.com/jtojnar)) 44*5d3e7166SEd Maste- Use explicit math.h linkage [[#170]](https://github.com/PJK/libcbor/pull/170) 45*5d3e7166SEd Maste- BREAKING: Fixed handling of items that exceed the host size_t range [[#186]](https://github.com/PJK/libcbor/pull/186hg) 46*5d3e7166SEd Maste - 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 47*5d3e7166SEd Maste - cbor_decode explicitly checks size to avoid overflows (previously broken, potentially resulting in erroneous decoding on affected systems) 48*5d3e7166SEd Maste - The change should be a noop for 64b systems 49*5d3e7166SEd Maste- Added a [Bazel](https://bazel.build/) build example [[#196]](https://github.com/PJK/libcbor/pull/196) (by [andyjgf@](https://github.com/andyjgf)) 50*5d3e7166SEd Maste 5110ff414cSEd Maste0.8.0 (2020-09-20) 5210ff414cSEd Maste--------------------- 5310ff414cSEd Maste- BUILD BREAKING: Use BUILD_SHARED_LIBS to determine how to build libraries (fixed Windows linkage) [[#148]](https://github.com/PJK/libcbor/pull/148) (by [intelligide@](https://github.com/intelligide)) 5410ff414cSEd Maste- BREAKING: Fix `cbor_tag_item` not increasing the reference count on the tagged item reference it returns [[Fixes #109](https://github.com/PJK/libcbor/issues/109)] (discovered bt [JohnGilmour](https://github.com/JohnGilmour)) 5510ff414cSEd Maste - 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" 5610ff414cSEd Maste- BREAKING: [`CBOR_DECODER_EBUFFER` removed from `cbor_decoder_status`](https://github.com/PJK/libcbor/pull/156) 5710ff414cSEd Maste - `cbor_stream_decode` will set `CBOR_DECODER_NEDATA` instead if the input buffer is empty 5810ff414cSEd Maste- [Fix `cbor_stream_decode`](https://github.com/PJK/libcbor/pull/156) to set `cbor_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](https://github.com/woefulwabbit)) 5910ff414cSEd Maste- Fixed several minor manpage issues [[#159]](https://github.com/PJK/libcbor/pull/159) (discovered by [kloczek@](https://github.com/kloczek)) 6010ff414cSEd Maste 6110ff414cSEd Maste0.7.0 (2020-04-25) 6210ff414cSEd Maste--------------------- 6310ff414cSEd Maste- Fix bad encoding of NaN half-floats [[Fixes #53]](https://github.com/PJK/libcbor/issues/53) (discovered by [BSipos-RKF](https://github.com/BSipos-RKF)) 6410ff414cSEd Maste - **Warning**: Previous versions encoded NaNs as `0xf9e700` instead of `0xf97e00`; if you rely on the broken behavior, this will be a breaking change 6510ff414cSEd Maste- Fix potentially bad encoding of negative half-float with exponent < -14 [[Fixes #112]](https://github.com/PJK/libcbor/issues/112) (discovered by [yami36](https://github.com/yami36)) 6610ff414cSEd Maste- BREAKING: Improved bool support [[Fixes #63]](https://github.com/PJK/libcbor/issues/63) 6710ff414cSEd Maste - Rename `cbor_ctrl_is_bool` to `cbor_get_bool` and fix the behavior 6810ff414cSEd Maste - Add `cbor_set_bool` 6910ff414cSEd Maste- Fix memory_allocation_test breaking the build without CBOR_CUSTOM_ALLOC [[Fixes #128]](https://github.com/PJK/libcbor/issues/128) (by [panlinux](https://github.com/panlinux)) 7010ff414cSEd Maste- [Fix a potential build issue where cJSON includes may be misconfigured](https://github.com/PJK/libcbor/pull/132) 7110ff414cSEd Maste- Breaking: [Add a limit on the size of the decoding context stack](https://github.com/PJK/libcbor/pull/138) (by [James-ZHANG](https://github.com/James-ZHANG)) 7210ff414cSEd Maste - If your usecase requires parsing very deeply nested structures, you might need to increase the default 2k limit via `CBOR_MAX_STACK_SIZE` 7310ff414cSEd Maste- Enable LTO/IPO based on [CheckIPOSupported](https://cmake.org/cmake/help/latest/module/CheckIPOSupported.html#module:CheckIPOSupported) [[#143]](https://github.com/PJK/libcbor/pull/143) (by [xanderlent](https://github.com/xanderlent)) 7410ff414cSEd Maste - 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 7510ff414cSEd Maste 7610ff414cSEd Maste0.6.1 (2020-03-26) 7710ff414cSEd Maste--------------------- 7810ff414cSEd Maste- [Fix bad shared library version number](https://github.com/PJK/libcbor/pull/131) 7910ff414cSEd Maste - **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. 8010ff414cSEd Maste 8110ff414cSEd Maste0.6.0 (2020-03-15) 8210ff414cSEd Maste--------------------- 8310ff414cSEd Maste- Correctly set .so version [[Fixes #52]](https://github.com/PJK/libcbor/issues/52). 8410ff414cSEd Maste - **Warning**: All previous releases will be identified as 0.0 by the linker. 8510ff414cSEd Maste- Fix & prevent heap overflow error in example code [[#74]](https://github.com/PJK/libcbor/pull/74) [[#76]](https://github.com/PJK/libcbor/pull/76) (by @nevun) 8610ff414cSEd Maste- Correctly set OSX dynamic library version [[Fixes #75]](https://github.com/PJK/libcbor/issues/75) 8710ff414cSEd Maste- [Fix misplaced 0xFF bytes in maps possibly causing memory corruption](https://github.com/PJK/libcbor/pull/82) 8810ff414cSEd Maste- BREAKING: Fix handling & cleanup of failed memory allocation in constructor 8910ff414cSEd Maste and builder helper functions [[Fixes #84]](https://github.com/PJK/libcbor/issues/84) 9010ff414cSEd Maste - All cbor_new_* and cbor_build_* functions will now explicitly return NULL when memory allocation fails 9110ff414cSEd Maste - It is up to the client to handle such cases 9210ff414cSEd Maste- Globally enforced code style [[Fixes #83]](https://github.com/PJK/libcbor/issues/83) 9310ff414cSEd Maste- Fix issue possible memory corruption bug on repeated 9410ff414cSEd Maste cbor_(byte)string_add_chunk calls with intermittently failing realloc calls 9510ff414cSEd Maste- Fix possibly misaligned reads and writes when endian.h is uses or when 9610ff414cSEd Maste running on a big-endian machine [[Fixes #99](https://github.com/PJK/libcbor/issues/99), [#100](https://github.com/PJK/libcbor/issues/100)] 9710ff414cSEd Maste- [Improved CI setup with Travis-native arm64 support](https://github.com/PJK/libcbor/pull/116) 9810ff414cSEd Maste- [Docs migrated to Sphinx 2.4 and Python3](https://github.com/PJK/libcbor/pull/117) 9910ff414cSEd Maste 10010ff414cSEd Maste0.5.0 (2017-02-06) 10110ff414cSEd Maste--------------------- 10210ff414cSEd Maste- Remove cmocka from the subtree (always rely on system or user-provided version) 10310ff414cSEd Maste- Windows CI 10410ff414cSEd Maste- Only build tests if explicitly enabled (`-DWITH_TESTS=ON`) 10510ff414cSEd Maste- Fixed static header declarations (by cedric-d) 10610ff414cSEd Maste- Improved documentation (by Michael Richardson) 10710ff414cSEd Maste- Improved `examples/readfile.c` 10810ff414cSEd Maste- Reworked (re)allocation to handle huge inputs and overflows in size_t [[Fixes #16]](https://github.com/PJK/libcbor/issues/16) 10910ff414cSEd Maste- Improvements to C++ linkage (corrected `cbor_empty_callbacks`, fixed `restrict` pointers) (by Dennis Bijwaard) 11010ff414cSEd Maste- Fixed Linux installation directory depending on architecture [[Fixes #34]](https://github.com/PJK/libcbor/issues/34) (by jvymazal) 11110ff414cSEd Maste- Improved 32-bit support [[Fixes #35]](https://github.com/PJK/libcbor/issues/35) 11210ff414cSEd Maste- Fixed MSVC compatibility [[Fixes #31]](https://github.com/PJK/libcbor/issues/31) 11310ff414cSEd Maste- Fixed and improved half-float encoding [[Fixes #5](https://github.com/PJK/libcbor/issues/5), [#11](https://github.com/PJK/libcbor/issues/11)] 11410ff414cSEd Maste 11510ff414cSEd Maste0.4.0 (2015-12-25) 11610ff414cSEd Maste--------------------- 11710ff414cSEd MasteBreaks build & header compatibility due to: 11810ff414cSEd Maste 11910ff414cSEd Maste- Improved build configuration and feature check macros 12010ff414cSEd Maste- Endianess configuration fixes (by Erwin Kroon and David Grigsby) 12110ff414cSEd Maste- pkg-config compatibility (by Vincent Bernat) 12210ff414cSEd Maste- enable use of versioned SONAME (by Vincent Bernat) 12310ff414cSEd Maste- better fuzzer (wasn't random until now, ooops) 12410ff414cSEd Maste 12510ff414cSEd Maste0.3.1 (2015-05-21) 12610ff414cSEd Maste--------------------- 12710ff414cSEd Maste- documentation and comments improvements, mostly for the API reference 12810ff414cSEd Maste 12910ff414cSEd Maste0.3.0 (2015-05-21) 13010ff414cSEd Maste--------------------- 13110ff414cSEd Maste 13210ff414cSEd Maste- Fixes, polishing, niceties across the code base 13310ff414cSEd Maste- Updated examples 13410ff414cSEd Maste- `cbor_copy` 13510ff414cSEd Maste- `cbor_build_negint8`, 16, 32, 64, matching asserts 13610ff414cSEd Maste- `cbor_build_stringn` 13710ff414cSEd Maste- `cbor_build_tag` 13810ff414cSEd Maste- `cbor_build_float2`, ... 13910ff414cSEd Maste 14010ff414cSEd Maste0.2.1 (2015-05-17) 14110ff414cSEd Maste--------------------- 14210ff414cSEd Maste- C99 support 14310ff414cSEd Maste 14410ff414cSEd Maste0.2.0 (2015-05-17) 14510ff414cSEd Maste--------------------- 14610ff414cSEd Maste 14710ff414cSEd Maste- `cbor_ctrl_bool` -> `cbor_ctrl_is_bool` 14810ff414cSEd Maste- Added `cbor_array_allocated` & map equivalent 14910ff414cSEd Maste- Overhauled endianess conversion - ARM now works as expected 15010ff414cSEd Maste- 'sort.c' example added 15110ff414cSEd Maste- Significantly improved and doxyfied documentation 15210ff414cSEd Maste 15310ff414cSEd Maste0.1.0 (2015-05-06) 15410ff414cSEd Maste--------------------- 15510ff414cSEd Maste 15610ff414cSEd MasteThe initial release, yay! 157