Skip to content

UTF-8 support, library fuzzing

Latest

Choose a tag to compare

@rdmark rdmark released this 29 Mar 11:56
· 5 commits to main since this release

bstring v1.1.0 Release Notes

Highlights

This release brings UTF-8 string manipulation support to bstring, with modules ported from the parent bstrlib project. The library can now handle Unicode text through the new utf8util and buniutil modules, enabled by default.

Also new in this release is fuzz testing infrastructure using LLVM's libFuzzer, which has already led to the discovery and fixing of memory safety issues in bUuDecodeEx and bNetStr2Bstr.

On the build system front, the legacy Autotools build has been fully removed. bstring now builds exclusively with Meson.

New build options

  • enable-utf8 (default: true) — Build the library with UTF-8 string manipulation support (utf8util, buniutil). Disable with -Denable-utf8=false if UTF-8 support is not needed, and you want a leaner library.
  • enable-fuzzing (default: false) — Build libFuzzer fuzz targets for the library. Requires Clang. Enable with -Denable-fuzzing=true.
  • enable-old-api (default: false) — Enable backward compatibility macros for the pre-1.0 API. By default, namespace-polluting legacy macros are disabled. Enable with -Denable-old-api=true if you depend on the old macro names.

What's Changed

  • remove autotools macros and supporting files by @rdmark in #72
  • create a GitHub workflow job for building on OpenIndiana by @rdmark in #104
  • fix compiler warnings flagged by MSVC on Windows by @rdmark in #106
  • clarify the dual licensing terms of the code, include GPL v2 text by @rdmark in #121
  • borrow the library features section from the parent project by @rdmark in #140
  • remove C++ references in the docs by @rdmark in #139
  • port UTF8 string manipulation modules from bstrlib by @rdmark in #142
  • add biseqblk, biseqcaselessblk, binsertblk, bjoinblk by @rdmark in #143
  • add bfromcstrrangealloc, improve bSecureInput, fix bfindreplace by @rdmark in #146
  • port bSGMLEncode function from bstrlib by @rdmark in #147
  • fix bUuDecodeEx: prevent OOM and memory leak on malformed input by @rdmark in #148
  • fix bNetStr2Bstr: prevent OOB read on crafted netstring length by @rdmark in #149
  • introduce fuzz testing of the library using llvm libfuzzer by @rdmark in #150
  • rename namespace pollution meson option and define in config.h by @rdmark in #165

Full Changelog: v1.0.3...v1.1.0