diff options
author | Kostya Serebryany <kcc@google.com> | 2019-02-12 02:18:53 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2019-02-12 02:18:53 +0000 |
commit | cdbb9dc9625a8ce14cb0841a4aab613b0ead23d1 (patch) | |
tree | 7814f131702cdade0fdf2a7cbfaeae0ea9b6dcfa /compiler-rt/lib/fuzzer/FuzzerDriver.cpp | |
parent | cfc512ab44e20049b82e7cc61102db88f91ccc93 (diff) | |
download | bcm5719-llvm-cdbb9dc9625a8ce14cb0841a4aab613b0ead23d1.tar.gz bcm5719-llvm-cdbb9dc9625a8ce14cb0841a4aab613b0ead23d1.zip |
[libFuzzer] teach the fork mode to ignore OOMs and timeouts
llvm-svn: 353792
Diffstat (limited to 'compiler-rt/lib/fuzzer/FuzzerDriver.cpp')
-rw-r--r-- | compiler-rt/lib/fuzzer/FuzzerDriver.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp index 232b3a8732a..8ad99d0a3c2 100644 --- a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp +++ b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp @@ -533,6 +533,12 @@ void FuzzWithFork(Fuzzer *F, const FuzzingOptions &Options, Printf("INFO: temp_files: %zd files_added: %zd newft: %zd ft: %zd\n", TempFiles.size(), FilesToAdd.size(), NewFeatures.size(), Features.size()); + // Continue if our crash is one of the ignorred ones. + if (Options.IgnoreTimeouts && ExitCode == Options.TimeoutExitCode) + continue; + if (Options.IgnoreOOMs && ExitCode == Options.OOMExitCode) + continue; + // And exit if we don't ignore this crash. if (ExitCode != 0) break; } @@ -681,6 +687,8 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) { Options.UnitTimeoutSec = Flags.timeout; Options.ErrorExitCode = Flags.error_exitcode; Options.TimeoutExitCode = Flags.timeout_exitcode; + Options.IgnoreTimeouts = Flags.ignore_timeouts; + Options.IgnoreOOMs = Flags.ignore_ooms; Options.MaxTotalTimeSec = Flags.max_total_time; Options.DoCrossOver = Flags.cross_over; Options.MutateDepth = Flags.mutate_depth; |