From f7dbb7d987e15ceb9ed4f07ce2513bbcd901de7d Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 8 Jan 2023 10:03:32 +0000 Subject: [PATCH] Release 0.8.2 --- ChangeLog.md | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index cba29aa9..19e734df 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -100,4 +100,126 @@ - Performance improvements in Lua API - Allow to pass opaque objects in Lua API for transparent C passthrough - Various bugs fixed -- Couple of memory leaks plugged \ No newline at end of file +- Couple of memory leaks plugged + +### Libucl 0.8.2 + +* .include: also validate priority to be within range +* Add -W into list of warnings +* Add ability to add file preprocessors +* Add ability to pass both the parser and userdata into a macro handler +* Add missing tests for .gitignore +* Add more safe guards when trying to insert objects +* Add some documentation/example about the .priority macro +* Add tests for single quotes +* Added CMake compile definitions +* Added CMake support to build utils +* Added a fuzzer for OSS-fuzz integration +* Added a return statement if the string is 0 +* Added default CMake "build" directory to gitignore +* Added fuzzer for msgpack +* Adding another fix +* Adjust example. +* Allow to test msgpack inputs +* Another sync +* Assume gcov absense as a non-fatal error +* Avoid read when a chunk is ended +* CMake: Install headers and library. +* Check for NULL inputs in ucl_object_compare() +* Cleanup CURL handle after use +* Cleanup CURL handle after use +* Convert ucl_hash_insert() from returning int to returning bool. +* Convert ucl_hash_reserve() from returning int to bool. +* Do not try to emit single quoted strings in json mode +* Document single quotes +* Document ucl_object_iter_chk_excpn(). +* Document usage of ucl_object_iter_chk_excpn(). +* Don't double-escape Lua strings +* Excercise ucl_object_iter_chk_excpn(). +* Fix '\v' encoding +* Fix 68d87c362b0d7fbb45f395bfae616a28439e0bbc by setting error to 0 always. Which makes it even uglier. +* Fix cmake public include install +* Fix emitting of the bad unicode escapes +* Fix format strings, add printf attribute to schema functions +* Fix levels and objects closing +* Fix load macro with try=true +* Fix mismerge. +* Fix mismerge. +* Fix old issue with parsing numbers +* Fix processing of the incomplete msgpack objects +* Fix remain calculations +* Fix remain lenght calculation that led to assertion failure +* Fix single quotes emitting +* Fix spelling and markup errors. +* Fix typos: replace missmatch with mismatch +* Fix ucl++ bug where iterators stop on a null field. +* Fix ucl_util.c not having the prototype for ucl_hash_sort() +* Fix variables expansion +* Fix vertical tab handling +* Fixed Visual Studio compilation error +* Fixed expanding variables at runtime +* Fixed linker error +* Fixed ucl_tool's command line argument parsing +* Fixing error with installing using pip from git with following command: 'pip install -e git+https://github.com/vstakhov/libucl.git/#egg=ucl +* Forgot hash sort function +* Improve ENOMEM handling: handle most of errors while consuructing parser, also extend iterator routines to allow capturing such exception and checking it in the higher level code using new ucl_object_iter_chk_excpn() API. +* Mark + as unsafe which fixes export a key with + in config mode +* Modernise the CMake build system slightly. +* Modernize CMake file with target-based includes. +* Pass correct pointer to var_handler +* Port util objdump to Windows (Visual Studio) +* Port util ucl-tool to Windows +* Provide inline free(3) wrapper, so it's easier to plug the code into out memory usage tracking framework. +* Provide inline free(3) wrapper, so it's easier to plug the code into out memory usage tracking framework. +* Provide priority validation for the .priority macro +* Put space between "exit" and (). +* Put space between name of teh function and (). +* Python build fixes +* Read data in chunks +* Remove leak in the test +* Remove one more bit of unused logic +* Remove one more stupid assertion +* Remove unnecessary (and ignored) `const` from return types. +* Remove unnecessary std::move from return statement. +* Remove unused CMake logic and ad -Wno-pointer-sign. +* Removed dependency from rspamd CMake file +* Removed null-terminator for input data +* Rename ENOMEM-safe version of kv_xxx macros from kv_xxx into kv_xxx_safe and put back old version as well (with a big warning in the header file) for a compat purposes. +* Renamed util binaries to match autotools +* Replace *neat* and *tidy* implementation of kv_xxx() macros using error handling labels with a much *uglier* implementation using "error code pointer". One man's "ugly" is other man's "pretty", I suppose. +* Replaced spaces by tabs to match coding style +* Rework hash table structure to provide pointers and order safety +* Save chunk in the parser stack +* Save filename in chunk +* Split level and flags, add obrace flag, fix msgpack flags +* Squelch incompatible pointer type warning +* Support single quoted strings +* Suppress the [-Wunused-parameter] warning. +* Sync changes from Rspamd +* Sync changes from rspamd +* Sync with Rspamd +* Understand nan and inf +* Use safe iterator - avoid leaking memory. +* docs: fix simple typo, tectual -> textual +* fix: Changed OpenSSL check inside configure.am +* fix: Incorrect pointer arithmetics in ucl_expand_single_variable +* fix: ucl_expand_single_variable doesn't call free +* lua: Return early when init fails +* make use of the undocumented flag UCL_PARSER_NO_IMPLICIT_ARRAYS, so that multiple keys are treated as arrays, and special code doesn't have to be added to the Python module to handle it. +* mypy/stubgen: add typeinterfaces for ucl python module +* o `ucl_object_iterate2()` -> `ucl_object_iterate_with_error()`; +* python: update package to 0.8.1 +* `ucl_check_variable`: fix out_len on unterminated variable +* `ucl_chunk_skipc`: avoid out-of-bounds read +* `ucl_expand_single_variable`: better bounds check +* `ucl_expand_variable`: fix out-of-bounds read +* `ucl_inherit_handler`: fix format string for non-null-terminated strings +* `ucl_lc_cmp` is not used outside ucl_hash.c +* `ucl_lex_json_string`: fix out-of-bounds read +* `ucl_maybe_parse_number`: if there is trailing content, it is not a number +* `ucl_object_copy_internal`: null terminate keys +* `ucl_object_copy_internal`: use memcpy instead of strdup +* `ucl_object_free` is deprecated +* `ucl_parse_value`: fix out-of-bounds read +* `ucl_strnstr`: fix out-of-bounds read +* update JSON example to match w/ UCL example