Skip to content

Commit

Permalink
docs/fuzz: add some information about OSS-Fuzz
Browse files Browse the repository at this point in the history
Signed-off-by: Alexander Bulekov <[email protected]>
Reviewed-by: Darren Kenny <[email protected]>
Message-Id: <[email protected]>
  • Loading branch information
a1xndr authored and bonzini committed Feb 8, 2021
1 parent 8630b43 commit 3ca45fb
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions docs/devel/fuzzing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,36 @@ To ensure that these env variables have been configured correctly, we can use::

The output should contain a complete list of matched MemoryRegions.

OSS-Fuzz
--------
QEMU is continuously fuzzed on `OSS-Fuzz` __(https://github.com/google/oss-fuzz).
By default, the OSS-Fuzz build will try to fuzz every fuzz-target. Since the
generic-fuzz target requires additional information provided in environment
variables, we pre-define some generic-fuzz configs in
``tests/qtest/fuzz/generic_fuzz_configs.h``. Each config must specify:

- ``.name``: To identify the fuzzer config

- ``.args`` OR ``.argfunc``: A string or pointer to a function returning a
string. These strings are used to specify the ``QEMU_FUZZ_ARGS``
environment variable. ``argfunc`` is useful when the config relies on e.g.
a dynamically created temp directory, or a free tcp/udp port.

- ``.objects``: A string that specifies the ``QEMU_FUZZ_OBJECTS`` environment
variable.

To fuzz additional devices/device configuration on OSS-Fuzz, send patches for
either a new device-specific fuzzer or a new generic-fuzz config.

Build details:

- The Dockerfile that sets up the environment for building QEMU's
fuzzers on OSS-Fuzz can be fund in the OSS-Fuzz repository
__(https://github.com/google/oss-fuzz/blob/master/projects/qemu/Dockerfile)

- The script responsible for building the fuzzers can be found in the
QEMU source tree at ``scripts/oss-fuzz/build.sh``

Implementation Details / Fuzzer Lifecycle
-----------------------------------------

Expand Down

0 comments on commit 3ca45fb

Please sign in to comment.