From: Eric Haszlakiewicz Date: Thu, 14 Apr 2022 00:21:13 +0000 (+0000) Subject: Update the ChangeLog with recent changes, in preparation for a 0.16 release. X-Git-Tag: json-c-0.16-20220414~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d303478a40e8bbb0cfd2e82ac99dc8e407cf014;p=json-c Update the ChangeLog with recent changes, in preparation for a 0.16 release. Add a list of issues closed for this release. --- diff --git a/ChangeLog b/ChangeLog index 8877631..b03a777 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,16 +1,56 @@ -Next Release 0.16 -===================== +0.16 (up to commit 66dcdf5, 2022-04-13) +======================================== -Significant changes and bug fixes ---------------------------------- -* Introduce constant JSON_C_OBJECT_ADD_CONSTANT_KEY - as a replacement of JSON_C_OBJECT_KEY_IS_CONSTANT, - JSON_C_OBJECT_KEY_IS_CONSTANT becoming legacy. +Deprecated and removed features: +-------------------------------- +* JSON_C_OBJECT_KEY_IS_CONSTANT is deprecated in favor of + JSON_C_OBJECT_ADD_CONSTANT_KEY * Direct access to lh_table and lh_entry structure members is deprecated. Use access functions instead, lh_table_head(), lh_entry_next(), etc... * Drop REFCOUNT_DEBUG code. +New features +------------ +* The 0.16 release introduces no new features + +Build changes +------------- +* Add a DISABLE_EXTRA_LIBS option to skip using libbsd +* Add a DISABLE_JSON_POINTER option to skip compiling in json_pointer support. + +Significant changes and bug fixes +--------------------------------- +* Cap string length at INT_MAX to avoid various issues with very long strings. +* json_object_deep_copy: fix deep copy of strings containing '\0' +* Fix read past end of buffer in the "json_parse" command +* Avoid out of memory accesses in the locally provided vasprintf() function + (for those platforms that use it) +* Handle allocation failure in json_tokener_new_ex +* Fix use-after-free in json_tokener_new_ex() in the event of printbuf_new() returning NULL +* printbuf_memset(): set gaps to zero - areas within the print buffer which + have not been initialized by using printbuf_memset +* printbuf: return -1 on invalid arguments (len < 0 or total buffer > INT_MAX) +* sprintbuf(): propagate printbuf_memappend errors back to the caller + +Optimizations +-------------- +* Speed up parsing by replacing ctype functions with simplified, faster + non-locale-sensitive ones in json_tokener and json_object_to_json_string. +* Neither vertical tab nor formfeed are considered whitespace per the JSON spec +* json_object: speed up creation of objects, calloc() -> malloc() + set fields +* Avoid needless extra strlen() call in json_c_shallow_copy_default() and + json_object_equal() when the object is known to be a json_type_string. + +Other changes +------------- +* Validate size arguments in arraylist functions. +* Use getrandom() if available; with GRND_NONBLOCK to allow use of json-c + very early during boot, such as part of cryptsetup. +* Use arc4random() if it's available. +* random_seed: on error, continue to next method instead of exiting the process +* Close file when unable to read from /dev/urandom in get_dev_random_seed() + *** 0.15 (up to commit 870965e, 2020/07/26) diff --git a/issues_closed_for_0.16.md b/issues_closed_for_0.16.md new file mode 100644 index 0000000..290967d --- /dev/null +++ b/issues_closed_for_0.16.md @@ -0,0 +1,107 @@ +This list was created with: + +``` +PREV=2020-07-23 +NOW=2022-04-13 +curl "https://api.github.com/search/issues?q=repo%3Ajson-c%2Fjson-c+closed%3A>${PREV}+created%3A<${NOW}&sort=created&order=asc&per_page=100&page=1" > issues1.out +jq -r '.items[] | "[" + .title + "](" + .url + ")" | tostring' issues?.out > issues.md +sed -e's,^\[ *\(.*\)\](https://api.github.com/.*/\([0-9].*\)),* [Issue #\2](https://github.com/json-c/json-c/issues/\2) - \1,' -i issues.md +cat issues.md >> issues_closed_for_0.16.md +``` + +* [Issue #464](https://github.com/json-c/json-c/issues/464) - Speed up parsing and object creation +* [Issue #540](https://github.com/json-c/json-c/issues/540) - request: json_init_library +* [Issue #631](https://github.com/json-c/json-c/issues/631) - New 0.14 release requests +* [Issue #647](https://github.com/json-c/json-c/issues/647) - "cmake -DCMAKE_BUILD_TYPE=Release" fails with error: 'cint64' may be used uninitialized +* [Issue #648](https://github.com/json-c/json-c/issues/648) - Fix "may be used uninitialized" Release build failure +* [Issue #649](https://github.com/json-c/json-c/issues/649) - json-c tag 0.15 tarball contains a file doc/Doxyfile and generated doxygen files in doc/html +* [Issue #650](https://github.com/json-c/json-c/issues/650) - README: fix spelling errors +* [Issue #651](https://github.com/json-c/json-c/issues/651) - Getrandom +* [Issue #652](https://github.com/json-c/json-c/issues/652) - Waste memory +* [Issue #653](https://github.com/json-c/json-c/issues/653) - Make the documentation build reproducibly +* [Issue #654](https://github.com/json-c/json-c/issues/654) - A stack-buffer-overflow in json_parse.c:89:44 +* [Issue #655](https://github.com/json-c/json-c/issues/655) - json_parse: Fix read past end of buffer +* [Issue #656](https://github.com/json-c/json-c/issues/656) - Fixed warnings +* [Issue #657](https://github.com/json-c/json-c/issues/657) - Use GRND_NONBLOCK with getrandom. +* [Issue #658](https://github.com/json-c/json-c/issues/658) - json_object_get_boolean() returns wrong result for objects and arrays +* [Issue #659](https://github.com/json-c/json-c/issues/659) - fix json_object_get_boolean() to behave like documented +* [Issue #660](https://github.com/json-c/json-c/issues/660) - Validate size arguments in arraylist functions. +* [Issue #661](https://github.com/json-c/json-c/issues/661) - Cleanup of some code parts +* [Issue #662](https://github.com/json-c/json-c/issues/662) - Prevent signed overflow in get_time_seed +* [Issue #663](https://github.com/json-c/json-c/issues/663) - Properly format errnos in _json_c_strerror +* [Issue #664](https://github.com/json-c/json-c/issues/664) - Limit strings at INT_MAX length +* [Issue #665](https://github.com/json-c/json-c/issues/665) - Handle more allocation failures in json_tokener* functions +* [Issue #666](https://github.com/json-c/json-c/issues/666) - test1 json_object_new_array_ext test is failing +* [Issue #667](https://github.com/json-c/json-c/issues/667) - Fixed test1 regression. +* [Issue #670](https://github.com/json-c/json-c/issues/670) - Created Stone-Paper-Scissor Game by C language +* [Issue #672](https://github.com/json-c/json-c/issues/672) - Calling exit() after failure to generate random seed +* [Issue #673](https://github.com/json-c/json-c/issues/673) - switchcasemenuproject +* [Issue #674](https://github.com/json-c/json-c/issues/674) - random_seed: on error, continue to next method +* [Issue #682](https://github.com/json-c/json-c/issues/682) - libjson-c-dev vs libjson-c3 +* [Issue #683](https://github.com/json-c/json-c/issues/683) - [Question] Is it possible to clear a ptr of json_object? +* [Issue #684](https://github.com/json-c/json-c/issues/684) - json_tokener_parse_verbose failed with core dump +* [Issue #685](https://github.com/json-c/json-c/issues/685) - json_tokener_parse memory leak? +* [Issue #689](https://github.com/json-c/json-c/issues/689) - fix compilation with clang +* [Issue #690](https://github.com/json-c/json-c/issues/690) - "1," produces an object with int 1; "1" produces a null object +* [Issue #691](https://github.com/json-c/json-c/issues/691) - failed tests +* [Issue #692](https://github.com/json-c/json-c/issues/692) - patch to add arc4random +* [Issue #693](https://github.com/json-c/json-c/issues/693) - Optional parameter for packing as array +* [Issue #694](https://github.com/json-c/json-c/issues/694) - fix invalid unsigned arithmetic. +* [Issue #695](https://github.com/json-c/json-c/issues/695) - /tmp/json-c/random_seed.c:327:6: error +* [Issue #696](https://github.com/json-c/json-c/issues/696) - To avoid target exe file export JSON functions. +* [Issue #697](https://github.com/json-c/json-c/issues/697) - json_object_get_string() return value truncated when assigning it to a pointer type in Win32 App +* [Issue #698](https://github.com/json-c/json-c/issues/698) - Feature request: set allocator +* [Issue #699](https://github.com/json-c/json-c/issues/699) - Linking to libjson-c Issue +* [Issue #700](https://github.com/json-c/json-c/issues/700) - Fix unused variable for Win32 build in random_seed.c +* [Issue #701](https://github.com/json-c/json-c/issues/701) - [RFC] json_pointer: allow the feature to be disabled +* [Issue #703](https://github.com/json-c/json-c/issues/703) - Fix vasprintf fallback +* [Issue #706](https://github.com/json-c/json-c/issues/706) - Check __STDC_VERSION__ is defined before checking its value +* [Issue #707](https://github.com/json-c/json-c/issues/707) - How to build json-c-0.15 for arm arch +* [Issue #708](https://github.com/json-c/json-c/issues/708) - direct access to elements +* [Issue #709](https://github.com/json-c/json-c/issues/709) - Include guards not namespaced / build errors for debug.h with openNDS +* [Issue #710](https://github.com/json-c/json-c/issues/710) - 'file system sandbox blocked mmap()' error on iOS +* [Issue #711](https://github.com/json-c/json-c/issues/711) - creating a json object +* [Issue #712](https://github.com/json-c/json-c/issues/712) - building json-c using cmake for ESP32 +* [Issue #713](https://github.com/json-c/json-c/issues/713) - When value converted to char* can not compare it with another value +* [Issue #714](https://github.com/json-c/json-c/issues/714) - Add AfterCaseLabel to .clang-format +* [Issue #716](https://github.com/json-c/json-c/issues/716) - Fixed cmake command +* [Issue #717](https://github.com/json-c/json-c/issues/717) - Cmake is able delete all files by "clean" target +* [Issue #718](https://github.com/json-c/json-c/issues/718) - CMake create uninstall target if unix generator is used +* [Issue #719](https://github.com/json-c/json-c/issues/719) - Parsing multiple JSON strings +* [Issue #722](https://github.com/json-c/json-c/issues/722) - Fix use-after-free in json_tokener_new_ex() +* [Issue #723](https://github.com/json-c/json-c/issues/723) - if set __stdcall (/Gz) +* [Issue #724](https://github.com/json-c/json-c/issues/724) - #723 +* [Issue #725](https://github.com/json-c/json-c/issues/725) - json_object_from_file() execution segment error +* [Issue #726](https://github.com/json-c/json-c/issues/726) - fix cmake version for tests +* [Issue #727](https://github.com/json-c/json-c/issues/727) - Really use prefix JSON_C_OBJECT_ADD_ +* [Issue #728](https://github.com/json-c/json-c/issues/728) - DRAFT PROPOSAL - Add option JSON_C_OBJECT_ADD_IF_NOT_NULL +* [Issue #729](https://github.com/json-c/json-c/issues/729) - * don't assume includedir +* [Issue #731](https://github.com/json-c/json-c/issues/731) - Json-c Error +* [Issue #732](https://github.com/json-c/json-c/issues/732) - Fix/static include dirs +* [Issue #734](https://github.com/json-c/json-c/issues/734) - Newer appveyor config for VS2022 etc... +* [Issue #735](https://github.com/json-c/json-c/issues/735) - Add policy_max to minimum required cmake version +* [Issue #736](https://github.com/json-c/json-c/issues/736) - json_object.c:308: json_object_put: Assertion `jso->_ref_count > 0' failed +* [Issue #737](https://github.com/json-c/json-c/issues/737) - Fix typo in README +* [Issue #738](https://github.com/json-c/json-c/issues/738) - General question - Is there an SLA for handling newly detected security issues? +* [Issue #739](https://github.com/json-c/json-c/issues/739) - json_escape_str(): avoid harmless unsigned integer overflow +* [Issue #741](https://github.com/json-c/json-c/issues/741) - json_type_to_name(): use correct printf() formatter +* [Issue #742](https://github.com/json-c/json-c/issues/742) - json_object_copy_serializer_data(): add assertion +* [Issue #743](https://github.com/json-c/json-c/issues/743) - Cmd adb root +* [Issue #744](https://github.com/json-c/json-c/issues/744) - Close file on error path. +* [Issue #745](https://github.com/json-c/json-c/issues/745) - vasprintf(): avoid out of memory accesses +* [Issue #746](https://github.com/json-c/json-c/issues/746) - Fix typos in code comments and ChangeLog +* [Issue #747](https://github.com/json-c/json-c/issues/747) - json_object_put: Assertion `jso->_ref_count > 0' failed +* [Issue #748](https://github.com/json-c/json-c/issues/748) - sprintbuf(): test for all vsnprintf error values +* [Issue #749](https://github.com/json-c/json-c/issues/749) - sprintbuf(): handle printbuf_memappend errors +* [Issue #750](https://github.com/json-c/json-c/issues/750) - printbuf_memset(): set gaps to zero +* [Issue #751](https://github.com/json-c/json-c/issues/751) - printbuf: do not allow invalid arguments +* [Issue #752](https://github.com/json-c/json-c/issues/752) - Fix typos +* [Issue #753](https://github.com/json-c/json-c/issues/753) - CTest failed in MSVC build +* [Issue #754](https://github.com/json-c/json-c/issues/754) - Minor improvements to documentation +* [Issue #755](https://github.com/json-c/json-c/issues/755) - Fix error messages +* [Issue #758](https://github.com/json-c/json-c/issues/758) - Preserve context if out of memory +* [Issue #760](https://github.com/json-c/json-c/issues/760) - Code style: removed unneeded double-quotes +* [Issue #761](https://github.com/json-c/json-c/issues/761) - Last commit merged to master breaks compilation +* [Issue #762](https://github.com/json-c/json-c/issues/762) - how to merge two jsons by json-c +* [Issue #763](https://github.com/json-c/json-c/issues/763) - Question: sort_fn arguments +* [Issue #764](https://github.com/json-c/json-c/issues/764) - Make test fail on test case test_util_file