sqlite-vec/tests/fuzz/corpus/vec-mismatch
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
..
json_1d_blob_5byte Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match 2026-03-02 20:45:50 -08:00
json_2d_blob_3byte Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match 2026-03-02 20:45:50 -08:00
json_valid_blob_invalid Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match 2026-03-02 20:45:50 -08:00
json_valid_empty Add vec-mismatch fuzz target that catches aCleanup(a) bug in ensure_vector_match 2026-03-02 20:45:50 -08:00