All Versions
44
Latest Version
Avg Release Cycle
68 days
Latest Release
1032 days ago

Changelog History
Page 4

  • v1.4.4 Changes

    March 24, 2017

    🛠 Fixes:

    • 🛠 Fix a theoretical integer overflow, (not sure if it is possible on actual hardware), see e58f7ec
    • 🛠 Fix an off by one error, see cc84a44, thanks @gatzka
    • 👀 Double check the offset of the print buffer in ensure, see 1934059

    👌 Improvements:

    • ➕ Add a note in the header about required buffer size when using cJSON_PrintPreallocated, see 4bfb8800
  • v1.4.3 Changes

    March 19, 2017

    🛠 Fixes:

    • 🛠 Fix compilation of the tests on 32 bit PowerPC and potentially other systems, see 4ec6e76
    • 🛠 Fix compilation with old GCC compilers (4.3+ were tested), see 227d33, 466eb8e, see also #126
  • v1.4.2 Changes

    March 16, 2017

    🛠 Fixes:

    • 🛠 Fix minimum required cmake version, see 30e1e7a
    • 🛠 Fix detection of supported compiler flags, see 76e5296
    • ✅ Run cJSON_test and cJSON_test_utils along with unity tests, see c597601
  • v1.4.1 Changes

    March 16, 2017

    🛠 Fixes:

    • 👀 Make print_number abort with a failure in out of memory situations, see cf1842
  • v1.4.0 Changes

    March 04, 2017

    🔋 Features

    • 👀 Functions to check the type of an item, see #120
    • 🏁 Use dllexport on windows and fvisibility on Unix systems for public functions, see #116, thanks @mjerris
    • ✂ Remove trailing zeroes from printed numbers, see #123
    • 🔦 Expose the internal boolean type cJSON_bool in the header, see 2d3520e

    🛠 Fixes

    • 🛠 Fix handling of NULL pointers in cJSON_ArrayForEach, see b47d0e3
    • 👀 Make it compile with GCC 7 (fix -Wimplicit-fallthrough warning), see 9d07917

    Other Improvements

    • internally use realloc if available (#110)
    • 👍 builtin support for fuzzing with afl (#111)
    • ✅ unit tests for the print functions (#112)
    • 🖨 Always use buffered printing (#113)
    • 🖨 simplify the print functions (#114)
    • ➕ Add the compiler flags -Wdouble-conversion, -Wparentheses and -Wcomma (#122)
  • v1.3.2 Changes

    March 01, 2017

    🛠 Fixes:

    • 🏗 Don't build the unity library if testing is disabled, see #121. Thanks @ffontaine
  • v1.3.1 Changes

    February 27, 2017

    🛠 Fixes:

    • 🛠 Bugfix release that fixes an out of bounds read, see #118. This shouldn't have any security implications.
  • v1.3.0 Changes

    February 17, 2017

    🚀 This release includes a lot of rework in the parser and includes the Cunity unit testing framework, as well as some fixes. I increased the minor version number because there were quite a lot of internal changes.

    🔋 Features:

    • 🆕 New type for cJSON structs: cJSON_Invalid, see #108

    🛠 Fixes:

    • ⚙ runtime checks for a lot of potential integer overflows
    • 🛠 fix incorrect return in cJSON_PrintBuffered cf9d57d
    • 🛠 fix several potential issues found by Coverity
    • 🛠 fix potentially undefined behavior when assigning big numbers to valueint (41e2837)
      • Numbers exceeding INT_MAX or lower than INT_MIN will be explicitly assigned to valueint as INT_MAX and INT_MIN respectively (saturation on overflow).
      • fix the cJSON_SetNumberValue macro (87f7727), this slightly changes the behavior, see commit message

    ✅ Introduce unit tests

    • ✅ Started writing unit tests with the Cunity testing framework. Currently this covers the parser functions.

    Also:

    Simplifications

    🔨 After having unit tests for the parser function in place, I started refactoring the parser functions (as well as others) and making them easier to read and maintain.

    • 📜 Use strtod from the standard library for parsing numbers (0747669)
    • 📜 Use goto-fail in several parser functions (#100)
    • 📜 Rewrite/restructure all of the parsing functions to be easier to understand and have less code paths doing the same as another. (#109)
    • Simplify the buffer allocation strategy to always doubling the needed amount (9f6fa94)
    • ➕ Combined cJSON_AddItemToObject and cJSON_AddItemToObjectCS to one function (cf862d)

    Other changes

    • Prevent the usage of incompatible C and header versions via preprocessor directive (123bb1)
    • Let CMake automatically detect compiler flags
    • ➕ Add new compiler flags (-Wundef, -Wswitch-default, -Wconversion, -fstack-protector-strong) (#98)
    • 🔄 Change internal sizes from int to size_t (ecd5678)
    • Change internal strings from char* to unsigned char* (28b9ba4)
    • ➕ Add const in more places
  • v1.2.1 Changes

    January 31, 2017

    🛠 Fixes:

    • 🛠 Fixes a potential null pointer dereference in cJSON_Utils, discovered using clang's static analyzer by @bnason-nf, see #96
  • v1.2.0 Changes

    January 09, 2017

    🔋 Features:

    • ➕ Add a new type of cJSON item for raw JSON and support printing it. Thanks @loigu, see #65, #90

    🛠 Fixes:

    • 👀 Compiler warning if const is casted away, Thanks @gatzka, see #83
    • 🛠 Fix compile error with strict-overflow on PowerPC, see #85
    • 🛠 Fix typo in the README, thanks @MicroJoe, see #88
    • ➕ Add compile flag for compatibility with C++ compilers