This directory contains source code and build scripts for coverage-guided fuzzers. Detailed instructions are available at: https://github.com/google/oss-fuzz/blob/master/docs/ Quick start: Build a container $ docker build -t ossfuzz/tpm2 -f fuzz/Dockerfile . Build fuzzers $ docker run -ti --rm -v $(pwd):/src/tpm2 -v /tmp/fuzzers:/out \ ossfuzz/tpm2 Look in /tmp/fuzzers to see the executables. Run them like so: $ docker run -ti -v $(pwd)/fuzz/corpus-execute-command:/corpus \ -v /tmp/fuzzers:/out ossfuzz/libfuzzer-runner \ /out/tpm2_execute_command_fuzzer /corpus -runs=100 To reproduce a crash under gdb: Build a container $ docker build -t ossfuzz/tpm2 -f fuzz/Dockerfile . Build fuzzers $ docker run -ti --rm -v $(pwd):/src/tpm2 -v /tmp/fuzzers:/out \ ossfuzz/tpm2 or $ docker run -ti --rm -v $(pwd):/src/tpm2 -v /tmp/fuzzers:/out \ -e FUZZING_ENGINE=libfuzzer \ -e SANITIZER=<address/memory/undefined> \ ossfuzz/tpm2 Get a shell in the container $ docker run -ti --privileged \ -v <crash_testcase>:/testcase \ -v /tmp/fuzzers:/out \ -v $(pwd):/src/tpm2 \ -t ossfuzz/libfuzzer-runner In the container # gdb /out/tpm2_execute_command_fuzzer In gdb (gdb) r /testcase