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
* [presubmit] Enforce language attribute in projectt.yaml to be always set.
* Update documentation, better presubmit check, new project template.
* add docstring to templates.py
* Add example values in the project.yaml template and remove python value for now
* Add "project: c++" to 256 projects
* format
* Add labels and selective_unpack sections to the presubmit check
* fix incorrect auto_ccs format in three projects
* fix nss emails after rebase
* Add Mozilla fuzzing team to auto_cc of their used 3rd party libraries
* Use new vendor_ccs field in projects.yml (#2703)
* Remove not yet approved projects
* Remove not yet approved projects
https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
I ran into this because I was getting errors locally, like:
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/d/dpkg/libdpkg-perl_1.18.4ubuntu1.1_all.deb 404 Not Found [IP: 91.189.88.149 80]
It turns out you get these if you don't update, and the official best practices are to `run apt-get update && apt-get install`. In fact, running _any_ apt-get install command without the apt-get update && before it can result in unfortunate caching artifacts -- see "cache busting". (P.S. thanks to Peng on Freenode for helping me, I'm bad at Ubuntu.)
So:
sed -re \
's/RUN apt-get ((-y )?(install|build-dep))/RUN apt-get update \&\& apt-get \1/' -i \
projects/**/Dockerfile
I also manually fixed the cases that already ran apt-get update in their Dockerfile:
dlplibs/Dockerfile
grpc/Dockerfile
libreoffice/Dockerfile
* [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