1This directory contains source code and build scripts for coverage-guided
2fuzzers.
3
4Detailed instructions are available at:
5
6  https://github.com/google/oss-fuzz/blob/master/docs/
7
8Quick start:
9
10  Build a container
11
12    $ docker build -t ossfuzz/tpm2 -f fuzz/Dockerfile .
13
14  Build fuzzers
15
16    $ docker run -ti --rm -v $(pwd):/src/tpm2 -v /tmp/fuzzers:/out \
17                 ossfuzz/tpm2
18
19  Look in /tmp/fuzzers to see the executables. Run them like so:
20
21    $ docker run -ti -v $(pwd)/fuzz/corpus-execute-command:/corpus \
22                 -v /tmp/fuzzers:/out ossfuzz/libfuzzer-runner \
23                 /out/tpm2_execute_command_fuzzer /corpus -runs=100
24
25To reproduce a crash under gdb:
26
27  Build a container
28
29    $ docker build -t ossfuzz/tpm2 -f fuzz/Dockerfile .
30
31  Build fuzzers
32
33    $ docker run -ti --rm -v $(pwd):/src/tpm2 -v /tmp/fuzzers:/out \
34                 ossfuzz/tpm2
35
36  Get a shell in the container
37
38    $ docker run -ti --privileged \
39                 -v <crash_testcase>:/testcase \
40                 -v /tmp/fuzzers:/out \
41                 -v $(pwd):/src/tpm2 \
42                 -t ossfuzz/libfuzzer-runner
43
44  In the container
45
46     # gdb /out/tpm2_execute_command_fuzzer
47
48  In gdb
49
50     (gdb) r /testcase
51