mirror of https://github.com/google/oss-fuzz.git
![]() * retry sequentially if multiprocessing do_bad_build_check detects failures https://github.com/google/oss-fuzz/issues/5441 The error seen in the build log is: Whoops, the target binary crashed suddenly, before receiving any input from the fuzzer! suggesting that the fuzzer crashed before it got to do anything. Debugging locally what I tend to see is that a) in src/afl-forkserver.c afl_fsrv_start the read_s32_timed call returns 0 and that triggers kill(fsrv->fsrv_pid, fsrv->kill_signal); (SIGKILL) b) read_s32_timed returns 0 because *stop_soon_p is non-zero at restart_read: c) *stop_soon_p becomes non-zero in handle_stop_sig of src/afl-fuzz-init.c due to receiving SIGINT d) that SIGINT is sent by the timeout script used in bad_build_check so it is that "outer" timeout process which is sending SIGINT which then triggers afl-forkserver's internal SIGKILL to kill the process I get improved results if I retry the killed off fuzzers sequentially * Remove unneeded semicolons to fix presubmit Co-authored-by: Abhishek Arya <inferno@chromium.org> |
||
---|---|---|
.. | ||
gocoverage | ||
Dockerfile | ||
README.md | ||
bad_build_check | ||
collect_dft | ||
coverage | ||
coverage_helper | ||
dataflow_tracer.py | ||
download_corpus | ||
parse_options.py | ||
rcfilt | ||
reproduce | ||
run_fuzzer | ||
targets_list | ||
test_all.py | ||
test_all_test.py | ||
test_one.py |
README.md
base-runner
Base image for fuzzer runners.
docker run -ti gcr.io/oss-fuzz-base/base-runner <command> <args>
Commands
Command | Description |
---|---|
reproduce <fuzzer_name> <fuzzer_options> |
build all fuzz targets and run specified one with testcase /testcase and given options. |
run_fuzzer <fuzzer_name> <fuzzer_options> |
runs specified fuzzer combining options with .options file |
test_all.py |
runs every binary in /out as a fuzzer for a while to ensure it works. |
Examples
- Reproduce using latest OSS-Fuzz build:
docker run --rm -ti -v <testcase_path>:/testcase gcr.io/oss-fuzz/$PROJECT_NAME reproduce <fuzzer_name>
- Reproduce using local source checkout:
docker run --rm -ti -v <source_path>:/src/$PROJECT_NAME \ -v <testcase_path>:/testcase gcr.io/oss-fuzz/$PROJECT_NAME \ reproduce <fuzzer_name>