| Index: testing/libfuzzer/reference.md
|
| diff --git a/testing/libfuzzer/reference.md b/testing/libfuzzer/reference.md
|
| index df4fd3414c6730f1ccd10a3dbe6787b23f5e27f8..f406f670cfdd37088e2dcbc51e29184716d0ea46 100644
|
| --- a/testing/libfuzzer/reference.md
|
| +++ b/testing/libfuzzer/reference.md
|
| @@ -1,5 +1,37 @@
|
| # libFuzzer Integration Reference
|
|
|
| +## Supported Platforms and Configurations
|
| +
|
| +### Linux
|
| +
|
| +Linux is fully supported by libFuzzer and ClusterFuzz with following sanitizer
|
| +configurations:
|
| +
|
| +| GN Argument | Description |
|
| +|--------------|----|
|
| +| is_asan=true | enables [Address Sanitizer] to catch problems like buffer overruns. |
|
| +| is_msan=true | enables [Memory Sanitizer] to catch problems like uninitialed reads. |
|
| +| is_ubsan_security=true | enables [Undefined Behavior Sanitizer] to catch<sup>\[[1](#Notes)\]</sup> undefined behavior like integer overflow. |
|
| +
|
| +Configuration example:
|
| +
|
| +```bash
|
| +# With address sanitizer
|
| +gn gen out/libfuzzer '--args=use_libfuzzer=true is_asan=true enable_nacl=false' --check
|
| +```
|
| +
|
| +### Mac
|
| +
|
| +Mac is experimentally supported by libFuzzer with `is_asan` configuration. Mac
|
| +support is not provided by ClusterFuzz.
|
| +
|
| +Configuration example:
|
| +
|
| +```bash
|
| +gn gen out/libfuzzer '--args=use_libfuzzer=true is_asan=true enable_nacl=false mac_deployment_target="10.7"' --check
|
| +```
|
| +
|
| +
|
| ## fuzzer_test GN Template
|
|
|
| Use `fuzzer_test` to define libFuzzer targets:
|
| @@ -54,5 +86,7 @@ fuzzer_test("my_fuzzer") {
|
| ```
|
|
|
| [libFuzzer Usage]: http://llvm.org/docs/LibFuzzer.html#usage
|
| -
|
| +[Address Sanitizer]: http://clang.llvm.org/docs/AddressSanitizer.html
|
| +[Memory Sanitizer]: http://clang.llvm.org/docs/MemorySanitizer.html
|
| +[Undefined Behavior Sanitizer]: http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
|
|
|
|
|