blob: 90fd5f602ae64134b7e59f845e1024d759af3c48 [file] [log] [blame]
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