llvm-project/compiler-rt/lib/fuzzer
Ilya Leoshkevich 9df7ee34e1 [libFuzzer] Fix minimizing timeouts
When one tries to minimize timeouts using -minimize_crash=1,
minimization immediately fails. The following sequence of events is
responsible for this:

[parent] SIGALRM occurs
[parent] read() returns -EINTR (or -ERESTARTSYS according to strace)
[parent] fgets() returns NULL
[parent] ExecuteCommand() closes child's stdout and returns
[child ] SIGALRM occurs
[child ] AlarmCallback() attempts to write "ALARM: ..." to stdout
[child ] Dies with SIGPIPE without calling DumpCurrentUnit()
[parent] Does not see -exact_artifact_path and exits

When minimizing, the timer in parent is not necessary, so fix by not
setting it in this case.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D85359
2020-08-11 22:16:12 +02:00
..
afl [fuzzer][afl] Fix build with GCC 2020-05-26 11:35:50 -07:00
dataflow [DFSan] Add efficient fast16labels instrumentation mode. 2020-07-29 18:58:47 +00:00
scripts [libFuzzer] remove the data-flow-trace (DFT) python scripts; their functionality is now part of libFuzzer proper; also write functions.txt to the disk only if this file doesn't exist yet 2019-05-23 01:03:42 +00:00
standalone [libFuzzer] fix missing close on opened file 2019-02-26 19:33:00 +00:00
tests [libFuzzer] Fix leak in unit test. 2020-05-21 09:02:22 -07:00
CMakeLists.txt Revert "Add libFuzzer shared object build output" 2020-08-05 12:11:24 -07:00
FuzzerBuiltins.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerBuiltinsMsvc.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerCommand.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerCorpus.h Entropic: Boosting LibFuzzer Performance 2020-05-19 10:28:57 -07:00
FuzzerCrossOver.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerDataFlowTrace.cpp [DFSan] Add efficient fast16labels instrumentation mode. 2020-07-29 18:58:47 +00:00
FuzzerDataFlowTrace.h [libFuzzer] in autofocus mode, give more weight to functions with DFT 2019-06-14 23:29:56 +00:00
FuzzerDefs.h Revert "[libFuzzer] Expose fuzzer::FuzzerDriver()" 2020-07-23 17:07:55 -07:00
FuzzerDictionary.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerDriver.cpp [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerExtFunctions.def [libFuzzer] Always print DSO map on Fuchsia libFuzzer launch 2019-09-17 00:34:41 +00:00
FuzzerExtFunctions.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerExtFunctionsDlsym.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerExtFunctionsWeak.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerExtFunctionsWindows.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerExtraCounters.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerFlags.def Entropic: Boosting LibFuzzer Performance 2020-05-19 10:28:57 -07:00
FuzzerFork.cpp Reland "[NFC][libFuzzer] Prefix TempPath with string showing the work it is doing." 2020-02-10 18:23:39 -08:00
FuzzerFork.h [libFuzzer] add threads to the fork mode: now you can pass -fork=N to run N concurrent workers. Fork mode is still work-in-progress. 2019-02-14 00:25:43 +00:00
FuzzerIO.cpp Reland "[NFC][libFuzzer] Prefix TempPath with string showing the work it is doing." 2020-02-10 18:23:39 -08:00
FuzzerIO.h Reland "[NFC][libFuzzer] Prefix TempPath with string showing the work it is doing." 2020-02-10 18:23:39 -08:00
FuzzerIOPosix.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerIOWindows.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerInterceptors.cpp [libFuzzer] Instrument bcmp 2020-07-24 00:24:46 -07:00
FuzzerInterface.h [libFuzzer][Windows] Use dllexport for all declarations in FuzzerInterface.h 2019-01-28 17:51:13 +00:00
FuzzerInternal.h [libFuzzer] Merge: print feature coverage number as well. 2019-08-12 20:21:27 +00:00
FuzzerLoop.cpp [libFuzzer] Fix compilation error by including missing platform macro definitions. 2020-07-14 22:26:50 +00:00
FuzzerMain.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerMerge.cpp [libFuzzer] Make -merge=1 to reuse coverage information from the control file. 2019-09-11 14:11:08 +00:00
FuzzerMerge.h [libFuzzer] Fixed description of fuzzer merge control file. 2020-05-29 16:00:26 -07:00
FuzzerMutate.cpp [libFuzzer] Make MutateWithMask work when the Mask is shorter than the input. 2019-04-11 18:21:53 +00:00
FuzzerMutate.h [libFuzzer] refactor the way we choose the element to cross-over with, NFC (expected1); add a flag -seed_inputs= to pass extra seed inputs as file paths, not dirs 2019-02-08 01:20:54 +00:00
FuzzerOptions.h [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerPlatform.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerRandom.h [libFuzzer] replace slow std::mt19937 with a much faster std::minstd_rand; second attempt after failed r352732, this time with a fix for cmake 2019-02-12 01:00:08 +00:00
FuzzerSHA1.cpp [libFuzzer] Fix compilation error by including missing platform macro definitions. 2020-07-14 22:26:50 +00:00
FuzzerSHA1.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerTracePC.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerTracePC.h [libFuzzer] Fix endianness issue in ForEachNonZeroByte() 2020-08-04 21:53:27 +02:00
FuzzerUtil.cpp Fix UB in compiler-rt base64 implementation 2020-03-03 13:28:32 +01:00
FuzzerUtil.h [libFuzzer] Fix endianness issue in ForEachNonZeroByte() 2020-08-04 21:53:27 +02:00
FuzzerUtilDarwin.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerUtilFuchsia.cpp [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerUtilLinux.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerUtilPosix.cpp [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerUtilWindows.cpp [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerValueBitMap.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
README.txt
build.sh Switch from Bourne shell to simply base shell to build libfuzzer 2018-01-12 23:45:24 +00:00

README.txt

See http://llvm.org/docs/LibFuzzer.html