libcbor breaking changes

homebrew

28 curated breaking changes across major versions of libcbor. Use this as a migration checklist before bumping dependencies.

28
changes
Breaking changes by transition
  • v0.8.0 \u2192 v0.9.0breaking

    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

  • v0.8.0 \u2192 v0.9.0breaking

    Added a [Bazel](https://bazel.build/) build example [[#196]](https://github.com/PJK/libcbor/pull/196) (by [andyjgf@](https://github.com/andyjgf))

  • v0.8.0 \u2192 v0.9.0breaking

    The change should be a noop for 64b systems

  • v0.8.0 \u2192 v0.9.0breaking

    cbor_decode explicitly checks size to avoid overflows (previously broken, potentially resulting in erroneous decoding on affected systems)

  • v0.7.0 \u2192 v0.8.0breaking

    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"

  • v0.7.0 \u2192 v0.8.0breaking

    Fixed several minor manpage issues [[#159]](https://github.com/PJK/libcbor/pull/159) (discovered by [kloczek@](https://github.com/kloczek))

  • v0.7.0 \u2192 v0.8.0breaking

    [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))

  • v0.7.0 \u2192 v0.8.0breaking

    `cbor_stream_decode` will set `CBOR_DECODER_NEDATA` instead if the input buffer is empty

  • v0.7.0 \u2192 v0.8.0breaking

    BREAKING: [`CBOR_DECODER_EBUFFER` removed from `cbor_decoder_status`](https://github.com/PJK/libcbor/pull/156)

  • v0.6.1 \u2192 v0.7.0breaking

    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))

  • v0.6.1 \u2192 v0.7.0breaking

    Rename `cbor_ctrl_is_bool` to `cbor_get_bool` and fix the behavior

  • v0.6.1 \u2192 v0.7.0breaking

    [Fix a potential build issue where cJSON includes may be misconfigured](https://github.com/PJK/libcbor/pull/132)

  • v0.6.1 \u2192 v0.7.0breaking

    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))

  • v0.6.1 \u2192 v0.7.0breaking

    If your usecase requires parsing very deeply nested structures, you might need to increase the default 2k limit via `CBOR_MAX_STACK_SIZE`

  • v0.5.0 \u2192 v0.6.0breaking

    Fix possibly misaligned reads and writes when endian.h is uses or when running on a big-endian machine [[Fixes #99](https://github.com/PJK/libcbor/issues/99), [#100](https://github.com/PJK/libcbor/issues/100)]

  • v0.5.0 \u2192 v0.6.0breaking

    All cbor_new_ and cbor_build_ functions will now explicitly return NULL when memory allocation fails

  • v0.5.0 \u2192 v0.6.0breaking

    It is up to the client to handle such cases

  • v0.5.0 \u2192 v0.6.0breaking

    Globally enforced code style [[Fixes #83]](https://github.com/PJK/libcbor/issues/83)

  • v0.5.0 \u2192 v0.6.0breaking

    Fix issue possible memory corruption bug on repeated cbor_(byte)string_add_chunk calls with intermittently failing realloc calls

  • v0.10.2 \u2192 v0.11.0breaking

    BREAKING: [All decoders like `cbor_load` and `cbor_stream_decode` will accept all well-formed tag values](https://github.com/PJK/libcbor/pull/308) (bug discovered by [dskern-github](https://github.com/dskern-github))

  • v0.10.2 \u2192 v0.11.0breaking

    If you were relying on the validation, please check the result using `cbor_string_codepoint_count` instead

  • v0.10.2 \u2192 v0.11.0breaking

    This also makes decoding symmetrical with serialization, which already accepts all values

  • v0.10.2 \u2192 v0.11.0breaking

    Previously, decoding of certain values would fail with `CBOR_ERR_MALFORMATED` or `CBOR_DECODER_ERROR`

  • v0.9.0 \u2192 v0.10.0breaking

    Note: Half-float NaNs still lose data (https://github.com/PJK/libcbor/issues/215)

  • v0.9.0 \u2192 v0.10.0breaking

    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))

  • v0.9.0 \u2192 v0.10.0breaking

    Denormalized half-floats will now preserve data in the mantissa

  • v0.9.0 \u2192 v0.10.0breaking

    See https://repology.org/project/cmake/versions for support; the vast majority of users should not be affected.

  • v0.9.0 \u2192 v0.10.0breaking

    BUILD BREAKING: Minimum CMake version is 3.0 [[#201]](https://github.com/PJK/libcbor/pull/201) (by [thewtex@](https://github.com/thewtex))

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/homebrew/libcbor
libcbor breaking changes — Homebrew migration guide | DepScope