From 832d367b37cc5528591ace665c887ea35615c2af Mon Sep 17 00:00:00 2001 From: inferno-chromium Date: Wed, 30 Nov 2016 08:26:02 -0800 Subject: [PATCH] Update README.md --- infra/base-images/base-libfuzzer/README.md | 37 +++++++++++----------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/infra/base-images/base-libfuzzer/README.md b/infra/base-images/base-libfuzzer/README.md index 4e93a9ee3..0d54b0ef5 100644 --- a/infra/base-images/base-libfuzzer/README.md +++ b/infra/base-images/base-libfuzzer/README.md @@ -1,7 +1,7 @@ # base-libfuzzer > Abstract base image for libfuzzer builders. -Every project image supports multiple commands that can be invoked through docker after building the image: +Every project image supports multiple commands that can be invoked through docker after the image is built:
 docker run --rm -ti ossfuzz/$project <command> <arguments...>
@@ -11,36 +11,35 @@ docker run --rm -ti ossfuzz/$project <command> <
 
 | Command | Description |
 |---------|-------------|
-| `compile` (default) | build all fuzzers
-| `reproduce  ` | build all fuzzers and run specified one with `/testcase` content.
-| `run  ` | build all fuzzers and run specified one with given options.
+| `compile` (default) | build all fuzz targets
+| `reproduce  ` | build all fuzz targets and run specified one with testcase `/testcase` and given options.
+| `run  ` | build all fuzz targets and run specified one with given options.
 | `/bin/bash` | drop into shell, execute `compile` script to start build.
 
 # Examples
 
-- *reproduce an issue using the latest OSS-Fuzz build:*
+- *Reproduce using latest OSS-Fuzz build:*
 
    
 docker run --rm -ti -v $testcase_file:/testcase ossfuzz/$project reproduce $fuzzer
    
-- *reproduce using the local source code:* +- *Reproduce using local source checkout:*
-    docker run --rm -ti -v $project_checkout_dir:/src/$project \
+    docker run --rm -ti -v $local_source_checkout_dir:/src/$project \
                         -v $testcase_file:/testcase ossfuzz/$project reproduce $fuzzer
     
# Image Files Layout - | Location | Description | | -------- | ---------- | -| `/out/` (`$OUT`) | build artifacts should be copied here | -| `/src/` (`$SRC`) | place to checkout source files | -| `/work/`(`$WORK`) | used to store intermediate files | -| `/usr/lib/libfuzzer.a` | libfuzzer static library | +| `/out/` (`$OUT`) | Directory to store build artifacts (fuzz targets, dictionaries, options files, seed corpus archives). | +| `/src/` (`$SRC`) | Directory to checkout source files | +| `/work/`(`$WORK`) | Directory for storing intermediate files | +| `/usr/lib/libfuzzer.a` | Location of prebuilt libFuzzer library that needs to be linked into all fuzz targets (`-lfuzzer`). | While files layout is fixed within a container, `$SRC`, `$OUT`, `$WORK` are provided to be able to write retargetable scripts. @@ -48,7 +47,7 @@ provided to be able to write retargetable scripts. ## Compiler Flags -You *must* use special compiler flags to build your project and fuzzers. +You *must* use special compiler flags to build your project and fuzz targets. These flags are provided in following environment variables: | Env Variable | Description @@ -58,17 +57,17 @@ These flags are provided in following environment variables: | `$CFLAGS` | C compiler flags. | `$CXXFLAGS` | C++ compiler flags. -Many well-crafted build scripts will automatically use these variables. If not, -passing them manually to a build tool might be required. +Most well-crafted build scripts will automatically use these variables. If not, +pass them manually to the build tool. # Child Image Interface ## Sources -Child image has to checkout all sources it needs to compile fuzzers into -`$SRC` directory. When the image is executed, a directory could be mounted -on top of these with local checkouts using +Child image has to checkout all sources that it needs to compile fuzz targets into +`$SRC` directory. When the image is executed, a directory could be mounted on top +of these with local checkouts using `docker run -v $HOME/my_project:/src/my_project ...`. ## Other Required Files @@ -77,4 +76,4 @@ Following files have to be added by child images: | File Location | Description | | ------------- | ----------- | -| `$SRC/build.sh` | build script to build the project and its fuzzers | +| `$SRC/build.sh` | build script to build the project and its fuzz targets |