Repository navigation
Releases
Releases · PJK/libcbor
v0.14.0
What's Changed
- CI: Bump FreeBSD to 13.5 and 14.3 by @emaste in #379
- oss-fuzz: Add unit testing build to oss-fuzz build script by @arthurscchan in #380
- Revert "oss-fuzz: Add unit testing build to oss-fuzz build script" by @PJK in #382
- Update FreeBSD CI configuration by @PJK in #381
- Only generate coverage targets if the COVERAGE option is enabled by @PJK in #384
- cmake: fix macro names for nodiscard/unreachable feature flags by @huven in #385
- Fix Bazel build for Bazel 9 compatibility by @PJK in #386
- Fix integer overflow in cbor_copy_definite() chunk accumulation by @PJK in #387
- Add bounds check in cbor_array_get() by @PJK in #388
- Address potential unsigned underflow in streaming decoder claim_bytes() by @PJK in #389
- CI: Temporarily disable FreeBSD 16.0-snap by @PJK in #390
- Release previous item reference in cbor_tag_set_item() by @PJK in #391
- Return NULL from cbor_tag_item() when no item is set by @PJK in #392
- Fix undefined behavior in NaN encoding shift by @PJK in #393
- Build system cleanup by @PJK in #394
- Enable examples in Windows CI build by @PJK in #395
- Fix sizeof in test allocator mock by @PJK in #396
- Add serialization size overflow tests by @PJK in #397
- Fix critical documentation errors by @PJK in #398
- Smaller documentation fixes and updates by @PJK in #399
- Fix typos and style issues in documentation by @PJK in #400
- Fix bugs and cleanup in example code by @PJK in #401
- Modernize CMake build system by @PJK in #402
- Replace CMAKE_C_FLAGS with target_compile_options, simplify LTO by @PJK in #403
- Fix Windows CI build failure and improve build speed by @PJK in #404
- Speed up Windows CI: Ninja generator + cmocka caching by @PJK in #405
- Fix macOS CI: set resource_class and bump Xcode to 16.4.0 by @PJK in #406
- Fix bugs and improve robustness in example code by @PJK in #407
- Add cbor_structurally_equal for encoding-level item comparison by @PJK in #408
- Add cbor_map_get with parameterized equality function by @PJK in #409
- test: cover remaining branches in cbor_structurally_equal by @PJK in #410
- Enable LeakSanitizer (LSan) via -DSANITIZE=ON on Linux; add sanitized CI jobs by @PJK in #411
- Preserve NaN sign+payload and tiny-float sign in cbor_encode_half by @PJK in #412
- Add static and shared linkage test (closes #153) by @PJK in #413
- Fix infinite loop in streaming_parser example on NEDATA; fix required doc by @PJK in #414
- Fix NULL dereference in cbor_copy/cbor_copy_definite on allocation failure by @PJK in #419
- Explicitly guard size * 2 overflow in cbor_builder_map_start_callback by @PJK in #421
- Document large-allocation risk in cbor_load and clarify test-only CMake flags by @PJK in #422
- Improve decoding API docs: Graphviz diagram, comparison table, capped_alloc example by @PJK in #423
- Fix NULL dereference when serializing/measuring a tag with no item set by @PJK in #420
- Fix release.sh CMakeLists version check by @PJK in #424
- Bump version to 0.14.0 by @PJK in #425
New Contributors
- @arthurscchan made their first contribution in #380
- @huven made their first contribution in #385
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- Fix small typo in release script by @PJK in #350
- Fix failing 32 bit tests due to cmocka macro repeating stack pushes by @PJK in #354
- Set cmake_minimum_required to 3.5 by @PJK in #355
- Fix float_ctrl ctrl assertions failing in debug mode by @PJK in #353
- Check in vscode setup by @PJK in #357
- Add CBOR sequences example by @PJK in #358
- Add riscv64 config to CircleCI by @PJK in #359
- Add a test for malformed definite maps by @PJK in #360
- Add [[nodiscard]] support and auto-update to C23 in cmake by @PJK in #361
- Configure ctest on to export the test results to CircleCI by @PJK in #362
- Revamp the introduction doc into a more useful crash course by @PJK in #363
- Add OSX asan/lsan supression config by @PJK in #366
- Add cbor_copy_definite by @PJK in #364
- Improve handling and coverage reporting of exhaustive enum switches by @PJK in #367
- Add references to readme by @PJK in #368
- Update python deps and related docs by @PJK in #369
- Link tutorial in readme (and fix embedded RST formatting) by @PJK in #370
- Add a doc note on lto linking by @PJK in #373
- Add a doc for the reference count in cbor_array_set(). by @hglee in #375
- Add gh link to docs by @PJK in #374
- Add #355 to changelog by @PJK in #376
- Bump version to 0.13.0 by @PJK in #377
New Contributors
Full Changelog: v0.12.0...v0.13.0
v0.12.0
What's Changed
- Tag documentation and general doxygen style improvements by @PJK in #309
- Rename API docs to be more helpful by @PJK in #310
- Make MSVC w/ /sdl work by @PJK in #312
- Respect CMAKE_INTERPROCEDURAL_OPTIMIZATION by @PJK in #316
- Nicer cmakes by @PJK in #317
- Fixed code coverage option typo in CMakeLists.txt by @jonathanmarvens in #318
- Bump jinja2 from 3.1.2 to 3.1.3 in /doc/source by @dependabot in #306
- Update CI configs by @PJK in #332
- Fix wrong fopen mode in fuzzer by @PJK in #331
- Update OSX CI version by @PJK in #333
- Fix NaN handling on mips/mipsel and Windows; disable value propagation for signaling NaNs; add mips CI by @PJK in #335
- Export and install CMake targets by @dg0yt in #337
- Update cirrus FreeBSD to 14.2 by @PJK in #339
- Update Bazel setup to Bzlmod by @PJK in #340
- In cbor2cjson.c example, add missing cbor_move to cbor_array_get call by @whitehse in #338
- Update python requirements by @PJK in #343
- Fix mips/el CI by @PJK in #342
- include project directory with target instead of globally by @Jan200101 in #341
- Update more python packages by @PJK in #344
- Update example formatting (clang changed) by @PJK in #345
- Remove no-op pragma clang lines by @brooksdavis in #321
- Fix mutiple "pedantic" compiler warnings, mostly around unused parameters by @PJK in #347
- Bump jinja2 from 3.1.5 to 3.1.6 in /doc/source by @dependabot in #346
- Update changelog, improve release script to automate version bump PRs by @PJK in #348
- Bump version to 0.12.0 by @PJK in #349
New Contributors
- @jonathanmarvens made their first contribution in #318
- @dg0yt made their first contribution in #337
- @whitehse made their first contribution in #338
- @Jan200101 made their first contribution in #341
- @brooksdavis made their first contribution in #321
Full Changelog: v0.11.0...v0.12.0
0.11.0 (2024-02-04)
0.11.0 (2024-02-04)
- Updated documentation to refer to RFC 8949
- Improvements to
cbor_describe - Fix
cbor_string_set_handlenot setting the codepoint count - BREAKING:
cbor_loadwill no longer fail on input strings that are well-formed but not valid UTF-8- If you were relying on the validation, please check the result using
cbor_string_codepoint_countinstead
- If you were relying on the validation, please check the result using
- BREAKING: All decoders like
cbor_loadandcbor_stream_decodewill accept all well-formed tag values (bug discovered by dskern-github)- Previously, decoding of certain values would fail with
CBOR_ERR_MALFORMATEDorCBOR_DECODER_ERROR - This also makes decoding symmetrical with serialization, which already accepts all values
- Previously, decoding of certain values would fail with
v0.10.2
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
- Made tests platform-independent
v0.10.1
v0.10.0
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 (#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_copyleaking memory and creating invalid items when the allocator fails.- Previously, the failures were not handled in the interface. Now,
cbor_copymay returnNULLupon failure; clients should check the return value
- Previously, the failures were not handled in the interface. Now,
- Fix
cbor_build_tagillegal memory behavior when the allocator fails - Add a new
cbor_serialized_sizeAPI - Reworked
cbor_serialize_allocto allocate the exact amount of memory necessary upfront- This should significantly speed up
cbor_serialize_allocfor large items by avoiding multiple reallocation iterations - Clients should not use the return value of
cbor_serialize_alloc. It may be removed in the future.
- This should significantly speed up
- BUILD BREAKING: Deprecate CBOR_CUSTOM_ALLOC
cbor_set_allocswill 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
v0.9.0
0.9.0 (2021-11-14)
- Improved pkg-config paths handling [#164] (by jtojnar@)
- 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
- Added a Bazel build example [#196] (by andyjgf@)
v0.8.0
- BUILD BREAKING: Use BUILD_SHARED_LIBS to determine how to build libraries (fixed Windows linkage) [#148] (by intelligide@)
- BREAKING: Fix
cbor_tag_itemnot 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_moveto emulate as long as the returned handle is an "rvalue"
- If you have previously relied on the broken behavior, you can use
- BREAKING:
CBOR_DECODER_EBUFFERremoved fromcbor_decoder_statuscbor_stream_decodewill setCBOR_DECODER_NEDATAinstead if the input buffer is empty
- Fix
cbor_stream_decodeto setcbor_decoder_result.requiredto 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@)
v0.7.0
- Fix bad encoding of NaN half-floats [Fixes #53] (discovered by BSipos-RKF)
- Warning: Previous versions encoded NaNs as
0xf9e700instead of0xf97e00; if you rely on the broken behavior, this will be a breaking change
- Warning: Previous versions encoded NaNs as
- 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_booltocbor_get_booland fix the behavior - Add
cbor_set_bool
- Rename
- 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
- If your usecase requires parsing very deeply nested structures, you might need to increase the default 2k limit via
- 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