summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/fuzzer/FuzzerDriver.cpp
diff options
context:
space:
mode:
authorJonathan Metzman <metzman@chromium.org>2019-12-12 08:48:54 -0800
committerJonathan Metzman <metzman@chromium.org>2019-12-12 08:56:47 -0800
commit23bee0b0cf7a1af084ea06f2b7dfde1767837084 (patch)
tree331745c4d7c45ab292058d54c3d5183b26657b22 /compiler-rt/lib/fuzzer/FuzzerDriver.cpp
parent25234fd69e32e51bc800686075265f535d69d990 (diff)
downloadbcm5719-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.cpp7
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;
OpenPOWER on IntegriCloud