mirror of
https://github.com/asg017/sqlite-vec.git
synced 2026-04-25 00:36:56 +02:00
Fix fuzzer-found bugs and CI build issues
- fuzz.yaml: embed rpath to Homebrew LLVM's libc++ so macOS binaries can find the right C++ runtime at load time (fixes dyld weak-def crash) - fuzz.yaml: add `make sqlite-vec.h` step on all platforms before building fuzz targets (the header is generated from a template, not checked in) - fuzz.yaml: drop llvm version pin on Windows so choco succeeds when a newer LLVM is already installed on the runner - sqlite-vec.c: change fvec_cleanup / fvec_cleanup_noop to take void* instead of f32* so they are ABI-compatible with vector_cleanup; removes UBSAN indirect-call errors at many call sites - sqlite-vec.c: copy BLOB data into sqlite3_malloc'd buffer in fvec_from_value instead of aliasing the raw blob pointer, fixing UBSAN misaligned-load errors when SQLite hands us an unaligned blob - sqlite-vec.c: guard npy_token_next string scan with ptr < end check before the closing-quote dereference (heap-buffer-overflow) - sqlite-vec.c: clamp vec_quantize_int8 intermediate value to [-128, 127] before casting to i8 (UBSAN out-of-range conversion) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b1a02195d9
commit
cdbc34785f
2 changed files with 21 additions and 8 deletions
6
.github/workflows/fuzz.yaml
vendored
6
.github/workflows/fuzz.yaml
vendored
|
|
@ -69,7 +69,11 @@ jobs:
|
|||
- name: Generate sqlite-vec.h
|
||||
run: make sqlite-vec.h
|
||||
- name: Build fuzz targets
|
||||
run: make -C tests/fuzz all FUZZ_CC=/opt/homebrew/opt/llvm/bin/clang
|
||||
run: |
|
||||
LLVM=/opt/homebrew/opt/llvm
|
||||
make -C tests/fuzz all \
|
||||
FUZZ_CC=$LLVM/bin/clang \
|
||||
FUZZ_LDFLAGS="-Wl,-ld_classic -L$LLVM/lib/c++ -Wl,-rpath,$LLVM/lib/c++"
|
||||
- name: Run fuzz targets
|
||||
env:
|
||||
DYLD_LIBRARY_PATH: "/opt/homebrew/opt/llvm/lib/c++:${{ env.DYLD_LIBRARY_PATH }}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue