Skip to content

Add fuzzing harnesses for WAV, LAC, block, Rice, and bitstream decoders #12

Description

@audexdev

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    hardeningInput validation and robustness hardeningsecuritySecurity-relevant parser, decoder, or memory-safety worktestingTest coverage, fixtures, and regression cases

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions