aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorGravatar Max Moroz <dor3s1@gmail.com>2018-05-18 14:38:37 -0700
committerGravatar GitHub <noreply@github.com>2018-05-18 14:38:37 -0700
commit9cf647f1f4311bfcd701835d8d274c76528c3da2 (patch)
tree68cdf7b1c76479dcc3e757b408640b2dc7884ae2 /docs
parentca5a7e18afe106c7f99d254cc41d24597c5aeefd (diff)
[docs] Add instructions on "pull_images" and "check_build" as per suggestion in #1330. (#1404)
* [docs] Add instructions on "pull_images" and "check_build" as per suggestion in #1330. * Address review feedback * fix a typo
Diffstat (limited to 'docs')
-rw-r--r--docs/reproducing.md25
1 files changed, 23 insertions, 2 deletions
diff --git a/docs/reproducing.md b/docs/reproducing.md
index 109b22ca..1f74af92 100644
--- a/docs/reproducing.md
+++ b/docs/reproducing.md
@@ -29,8 +29,19 @@ If you are not sure how to build the fuzzer using the project's build system,
you may also use Docker ([how?](installing_docker.md), [why?](faq.md#why-do-you-use-docker)) commands
to replicate the exact build steps used by OSS-Fuzz and then feed the reproducer input to the fuzz target.
-## Build failures
-We will also report build failures for your project. To reproduce these, follow the [Building using docker](#building-using-docker) and if necessary the [Reproducing build checks](reproducing-build-checks) sections below.
+### Pull the latest Docker images
+
+```bash
+$ python infra/helper.py pull_images
+```
+
+ Docker images get regularly updated with a newer version of build tools, build
+ configurations, scripts, and other changes. In some cases, a particular issue
+ can be reproduced only with a fresh image being used.
+
+### Reproduce crashes with Docker
+
+- *Reproduce using latest OSS-Fuzz build:*
## Building using Docker
```bash
@@ -67,7 +78,17 @@ $ python infra/helper.py reproduce $PROJECT_NAME <fuzz_target_name> <testcase_pa
```
This is essentially the previous command that additionally mounts local sources into the running container.
+
- *Fix issue*. Write a patch to fix the issue in your local checkout and then use the previous command to verify the fix (i.e. no crash occurred).
[Use gdb](debugging.md#debugging-fuzzers-with-gdb) if needed.
- *Submit fix*. Submit the fix in the project's repository. ClusterFuzz will automatically pick up the changes, recheck the testcase and will close the issue (in &lt; 1 day).
- *Improve fuzzing support*. Consider [improving fuzzing support](ideal_integration.md) in your project's build and test system.
+
+
+### Reproducing OSS-Fuzz bad build failures
+
+```bash
+$ python infra/helper.py build_image $PROJECT_NAME
+$ python infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> $PROJECT_NAME
+$ python infra/helper.py check_build $PROJECT_NAME <fuzz_target_name>
+```