Skip to content

fkYAML version 0.4.4

Latest

Choose a tag to compare

@fktn-k fktn-k released this 20 Aug 07:30
· 23 commits to develop since this release

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_name returns an unresolved tag name.
    • See the API reference page for more details.

⚡ Improvements

  • Harden input adapter against truncated encoded input #533 (@sndth)

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

Full Changelog

v0.4.3...v0.4.4