SQLite with a Fine-Toothed Comb
At Trust-in-Soft, a focus has been placed on uncovering defects within open-source software, with SQLite being the primary target. This lightweight database, known for its wide deployment, consists of approximately 113 KSLOC of pointer-intensive code, making it challenging to perform static verification. Despite this, SQLite boasts an impressive test suite utilized by tools such as Valgrind, ASan, and UBSan.
The author has employed these tests in conjunction with tis-interpreter, an adaptation of a sound formal methods tool, to identify various categories of undefined behaviors (UBs), particularly in the blue-shaded area of the provided figure. However, the process of using tis-interpreter is not without its challenges, including slower performance compared to Valgrind, difficulties with separately compiled libraries, and issues with code interacting with the system.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.