diff options
author | Max Moroz <dor3s1@gmail.com> | 2018-05-18 14:38:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-18 14:38:37 -0700 |
commit | 9cf647f1f4311bfcd701835d8d274c76528c3da2 (patch) | |
tree | 68cdf7b1c76479dcc3e757b408640b2dc7884ae2 | |
parent | ca5a7e18afe106c7f99d254cc41d24597c5aeefd (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
-rw-r--r-- | docs/reproducing.md | 25 |
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 < 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> +``` |