Those fuzzers have been written and used internally with great results,
finding a couple of bugs, both in code and in design,
and have a code coverage of ~80% for the src/ folder,
and ~90% for both silk/ and celt/.
The fuzzers are put here and not upstream in libopus' repository,
because they are written in C++, and I'm not sure it's worth
the complexity of re-implementing FuzzedDataProvider
in C just for the sake of moving those files.
Co-authored-by: Julien Voisin <jvoisin@google.com>
* added new opus fuzzer, build working
* added missing license header, cleaned up Dockerfile
* fixed build process
* changed build process depending on C or C++ fuzzer
* converted opus_multi_fuzzer from C++ to C, reverted build script to only accept C files
* [opus] Build with -D_FORTIFY_SOURCE=0 to avoid msan false positives
Without this, a silk_memcpy call could resolve to __memcpy_chk,
which does not have an msan intercept, leading to false use-of-uninitialized-value errors.
* [opus] Consolidate cflags
* [opus] Fix typo
* [opus] Add Dockerfile and build.sh for decoder
* [opus] http->https and updated auto_ccs in project.yaml
* [opus] Fix copying .options and test corpus zip files