• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dimitarvp / xqlite / b1c60b4f154c803e8c7eec4cb2db71ac4c0624dd
71%

Build:
DEFAULT BRANCH: main
Ran 17 Jul 2026 08:29PM UTC
Jobs 1
Files 32
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Jul 2026 08:24PM UTC coverage: 70.48%. Remained the same
b1c60b4f154c803e8c7eec4cb2db71ac4c0624dd

push

github

dimitarvp
fix use-after-move in blob resource teardown

The blob resource stored a rusqlite Blob wrapper, which holds a real
&Connection and dereferences it on Drop. Once an explicit connection
close moves the Connection out of its Option slot and drops it, that
deref reads moved-from memory — a use-after-move reachable both from the
shipped blob_close path and from GC-drop of a live blob whose connection
was closed. It is latent today (the bytes read benignly), but a
different Option layout would panic in Drop, and rustler 0.38 resource
destructors have no catch_unwind, so that panic would unwind into C and
crash the BEAM.

The blob now owns only a raw sqlite3_blob pointer plus the connection
ResourceArc, mirroring the stream and statement resources: every
operation runs under the connection Mutex and no &Connection is ever
dereferenced on any teardown path. Closing after the connection is
closed stays sound because an open blob keeps the db alive at
SQLITE_BUSY. Observable behavior is unchanged.

A standalone Miri model under native/xqlitenif/miri proves the old
pattern is undefined behavior; it is deliberately outside the crate
build and the test suite.

573 of 813 relevant lines covered (70.48%)

36.55 hits per line

Jobs
ID Job ID Ran Files Coverage
1 b1c60b4f154c803e8c7eec4cb2db71ac4c0624dd.1 17 Jul 2026 08:29PM UTC 32
70.48
GitHub Action Run
Source Files on build b1c60b4f154c803e8c7eec4cb2db71ac4c0624dd
  • Tree
  • List 32
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b1c60b4f on github
  • Prev Build on main (#DCA9232A...)
  • Next Build on main (#AFBB6B43...)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc