cargo rusqlite 0.23.0
rusqlite 0.23.0, libsqlite-sys 0.18.0

latest releases: 0.37.0, 0.36.0, 0.35.0...
5 years ago

The release primarily contains a number of security/memory safety fixes, which were mostly found due to an audit of the unsafe code in the crate. An advisory will be published for these shortly.

They mostly impact APIs exposed through features, so while there are a lot of them, if you're using rusqlite under default features, you're fine. None of them impact libsqlite3-sys.

It's a major release as these APIs were fundamentally unsound and could not be fixed without breaking changes.

  • Make VTab / VTabCursor unsafe trait as implementing them on the wrong type is unsound c9ef5bd. (Note that a safe VTab API is planned in the future).
  • Make create_module take a &'static Module as that's what the reference was treated as. 3c6b57f
  • Make UnlockNotification hold the Mutex while notifying the CondVar. Also, ensure &mut is not used to reference a value shared across another thread. 45fd77e
  • Fix potential format string vuln in rusqlite::trace::log 2327d3b
  • Auxdata API has been changed and has new bounds.
    • Fix potential use-after-free and data race in auxdata api 2ef3628
    • Fix repr(Rust) type being used as if it were repr(C) 71b2f51
  • Fix use-after-free in sessions.rs in ac30e16

Non-safety changes in this release:

  • Bundled SQLite has been updated to 3.31.1 22564d3
  • Non-unicode paths are now handled properly, at least on unix #692
  • Functions using va_list are excluded from the bundled bindings, as these are platform specific. You can still use them if you enable the buildtime_bindgen feature. 288aa96
  • An unchecked_transaction function has been added which allows opting-out of compile time transaction checking. Despite it's name, it's still checked, it just downgrades a compilation error to a runtime one: #693
  • std::error::Error::source is implemented in favor of std::error::Error::cause for all error types.

Don't miss a new rusqlite release

NewReleases is sending notifications on new releases.