Summary
The parser and decoder surfaces are good fuzzing targets. Add a small fuzzing setup so malformed inputs can be tested continuously and locally.
Proposed targets
- WAV parser:
read_wav against arbitrary byte buffers or temporary files
- LAC container decoder:
LAC::Decoder::decode
- block decoder:
Block::Decoder::decode
- Rice decoder and bitstream reader primitives
- zero-run and bin residual modes
Suggested approach
- Start with libFuzzer-compatible targets under
fuzz/.
- Build with ASan/UBSan.
- Add a tiny seed corpus generated from valid synthetic streams.
- Add a CI smoke fuzz mode with a very short runtime.
- Keep longer fuzzing for local/manual runs until runtime is stable.
Acceptance criteria
- Fuzz targets build with CMake.
- At least one LAC decoder and one WAV parser fuzz target can run locally.
- Documentation explains how to run fuzzing and where to place corpus files.
Summary
The parser and decoder surfaces are good fuzzing targets. Add a small fuzzing setup so malformed inputs can be tested continuously and locally.
Proposed targets
read_wavagainst arbitrary byte buffers or temporary filesLAC::Decoder::decodeBlock::Decoder::decodeSuggested approach
fuzz/.Acceptance criteria