sqlite-vec/tests/fuzz
Alex Garcia 0dd0765cc6 Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match
Targeted fuzzer for two-argument vector functions (vec_distance_*,
vec_add, vec_sub) that binds a valid JSON vector as arg1 and fuzz
data as arg2. This exercises the error path in ensure_vector_match()
where the first vector parses successfully (with sqlite3_free cleanup)
but the second fails, triggering the buggy aCleanup(a) call on line
1031 of sqlite-vec.c (should be aCleanup(*a)).

The fuzzer catches this immediately — ASAN reports "bad-free" when
sqlite3_free is called on a stack address.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 20:45:50 -08:00
..
corpus Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match 2026-03-02 20:45:50 -08:00
targets Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
.gitignore fuzz work 2024-07-25 11:16:06 -07:00
exec.c fuzz work 2024-07-25 11:16:06 -07:00
exec.dict fuzz work 2024-07-25 11:16:06 -07:00
json.c fuzz work 2024-07-25 11:16:06 -07:00
Makefile Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match 2026-03-02 20:45:50 -08:00
metadata-columns.c Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
numpy.c Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
numpy.dict fuzz work 2024-07-25 11:16:06 -07:00
README.md fmt 2024-07-31 12:55:46 -07:00
scalar-functions.c Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
scalar-functions.dict Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
shadow-corrupt.c Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
vec-each.c Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
vec-mismatch.c Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match 2026-03-02 20:45:50 -08:00
vec0-create-full.c Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00
vec0-create.c fuzz work 2024-07-25 11:16:06 -07:00
vec0-create.dict fuzz work 2024-07-25 11:16:06 -07:00
vec0-operations.c Add comprehensive fuzz testing infrastructure with 6 new targets 2026-03-02 20:33:05 -08:00

ASAN_OPTIONS=detect_leaks=1 ./targets/vec0_create \
  -dict=./vec0-create.dict -max_total_time=5 \
  ./corpus/vec0-create
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"


LDFLAGS="-L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++"