What's Changed
✨ New Features
- Add fuzz test for parsing YAML inputs #537 (@fktn-k)
- Currently, it can only built with a Clang compiler. With GCC or MSVC compilers, the build fails.
- You can run the fuzz test with sanitizers enabled by running the following commands.
$ cd /path/to/fkYAML $ cmake -B build -S . -DFK_YAML_BUILD_TYPE=Debug -DFK_YAML_BUILD_FUZZ_TEST=ON $ cmake --build build --target run_fuzz_test # The results will be output to the `build/tests/fuzz_tests/corpus` directory.
- Add get_resolved_tag_name API to basic_node #559 (@fktn-k)
- This method returns a resolved tag name by replacing a tag shorthand (
!!or!e!) with the prefix defined in the %TAG directive. - This would be useful if you would like to perform some special operation based on tag properties associated to the target node, given that the pre-existing
get_tag_namereturns an unresolved tag name. - See the API reference page for more details.
- This method returns a resolved tag name by replacing a tag shorthand (
⚡ Improvements
🐛 Bug Fixes
Most bug are reported in or related to the issue #536. (thanks to @AlexandrKhromov2005)
- Fix crashes and memory leaks found during fuzz test #538 (@fktn-k)
- Fix more crashes caused by fuzz test #540 (@fktn-k)
- Fix out-of-bounds read on an explicit key without a parent context #543 (@AlexandrKhromov2005)
- Guard empty context stack in the key-separator and add_new_key paths #544 (@AlexandrKhromov2005)
- Prevent stack overflow by a self-referential alias #549 (@fktn-k)
- Fix out-of-bounds read from a truncated BOM in the char encoding detector #545 (@AlexandrKhromov2005)
- Fix four out-of-bounds reads in the lexer and tag URI validation #547 (@sndth)
- Guard the context stack access behind a checked accessor #552 (@sndth)
- Complete explicit mapping keys which are not followed by a value on the same line #554 (@sndth)
- Hold parse context node ownership in a unique_ptr #563 (@sndth)
🤖 CI
- Fix comment posting failures to the PRs from forks #555 (@fktn-k)
- Update coverage options for lcov v2.x #551 (@fktn-k)
- Migrate to doctest #535 (fktn-k)
- Send coverage report to Coveralls on all commits in main/develop branches #541 (@fktn-k)
- Change the way to generate test_data.hpp for unit tests #550 (@fktn-k)
🧩 Miscellaneous
- Harden SPDX copyright against duplicate entries #534 (@sndth)
- Remove unused BSL-1.0 license file #539 (@fktn-k)
- Update the copyright year in LICENSE.txt #542 (@fktn-k)