diff options
author | Jonathan Metzman <metzman@chromium.org> | 2019-12-12 08:48:54 -0800 |
---|---|---|
committer | Jonathan Metzman <metzman@chromium.org> | 2019-12-12 08:56:47 -0800 |
commit | 23bee0b0cf7a1af084ea06f2b7dfde1767837084 (patch) | |
tree | 331745c4d7c45ab292058d54c3d5183b26657b22 /compiler-rt/lib/fuzzer/FuzzerDriver.cpp | |
parent | 25234fd69e32e51bc800686075265f535d69d990 (diff) | |
download | bcm5719-llvm-23bee0b0cf7a1af084ea06f2b7dfde1767837084.tar.gz bcm5719-llvm-23bee0b0cf7a1af084ea06f2b7dfde1767837084.zip |
[fuzzer] Add basic support for emscripten.
Summary:
Add basic support for emscripten.
This enables libFuzzer to build (using build.sh) for emscripten and fuzz
a target compiled with
-fsanitize-coverage=inline-8bit-counters.
Basic fuzzing and bug finding work with this commit.
RSS limit and timeouts will not work because they depend on system
functions that are not implemented/widely supported in emscripten.
Reviewers: kcc, vitalybuka, hctim
Reviewed By: hctim
Subscribers: #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D71285
Diffstat (limited to 'compiler-rt/lib/fuzzer/FuzzerDriver.cpp')
-rw-r--r-- | compiler-rt/lib/fuzzer/FuzzerDriver.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp index 44c90655b93..dd3cab0ee8d 100644 --- a/compiler-rt/lib/fuzzer/FuzzerDriver.cpp +++ b/compiler-rt/lib/fuzzer/FuzzerDriver.cpp @@ -280,7 +280,8 @@ static void RssThread(Fuzzer *F, size_t RssLimitMb) { } static void StartRssThread(Fuzzer *F, size_t RssLimitMb) { - if (!RssLimitMb) return; + if (!RssLimitMb) + return; std::thread T(RssThread, F, RssLimitMb); T.detach(); } @@ -737,7 +738,11 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) { if (U.size() <= Word::GetMaxSize()) MD->AddWordToManualDictionary(Word(U.data(), U.size())); + // Threads are only supported by Chrome. Don't use them with emscripten + // for now. +#if !LIBFUZZER_EMSCRIPTEN StartRssThread(F, Flags.rss_limit_mb); +#endif // LIBFUZZER_EMSCRIPTEN Options.HandleAbrt = Flags.handle_abrt; Options.HandleBus = Flags.handle_bus; |