diff --git a/README.md b/README.md index 830984519..96483be52 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,8 @@ oss-fuzz will adhere to following disclosure principles: *part of target* source code repository. * [Running and Building External Fuzzers](docs/building_running_fuzzers_external.md) documents the process for fuzzers that are *part of oss-fuzz* source code repository. +* [Fuzzer execution environment](docs/fuzzer_environment.md) documents the + environment under which your fuzzers will be run. * [Targets List](targets/README.md) lists OSS targets added to oss-fuzz. * [Chrome's Efficient Fuzzer Guide](https://chromium.googlesource.com/chromium/src/testing/libfuzzer/+/HEAD/efficient_fuzzer.md) while contains some chrome-specifics, is an excellent documentation on making your fuzzer better. diff --git a/docs/fuzzer_environment.md b/docs/fuzzer_environment.md new file mode 100644 index 000000000..5d680f345 --- /dev/null +++ b/docs/fuzzer_environment.md @@ -0,0 +1,20 @@ +# Fuzzer environment on ClusterFuzz + +Your fuzzers will be run on ClusterFuzz (Linux environment) with some +restrictions. + +## Current working directory + +You cannot make any assumptions about the current working directory of your +fuzzer. If you need to load data files, please use `argv[0]` to get the +directory where your fuzzer executable is located. This may change in the near +future. + +## Filesystem + +Everything except `/tmp` is read-only, including the directory that your fuzzer +executable lives in. Note that `/tmp` is limited in size (64MB). + +## Network access + +There will be no network interfaces available (not even loopback). diff --git a/docs/new_target.md b/docs/new_target.md index c87cac9cf..5331bcab7 100644 --- a/docs/new_target.md +++ b/docs/new_target.md @@ -72,6 +72,12 @@ There are [lots](../targets/libxml2/libxml2_xml_read_memory_fuzzer.cc) [of](../targets/expat/parse_fuzzer.cc) [examples](../targets/zlib/zlib_uncompress_fuzzer.cc) in this project repository. +### Fuzzer execution environment + +[This page](fuzzer_environment.md) gives information about the environment that +your fuzzers will run under on ClusterFuzz, and the assumptions that you can +make. + ## build.sh This is where most of the work is done to build fuzzers for your target. The script will