From b6ca1e72594a3b79fbe37cd2e70f531c448f3e76 Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Sat, 16 Feb 2019 01:23:41 +0000 Subject: [libFuzzer] make len_control less agressive: set the initial max len to the length of the largest seed. This was the original intent, but... Now, with a test, to ensure it stays this way llvm-svn: 354191 --- compiler-rt/lib/fuzzer/FuzzerLoop.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'compiler-rt/lib/fuzzer/FuzzerLoop.cpp') diff --git a/compiler-rt/lib/fuzzer/FuzzerLoop.cpp b/compiler-rt/lib/fuzzer/FuzzerLoop.cpp index 75dc600870a..b86512b1255 100644 --- a/compiler-rt/lib/fuzzer/FuzzerLoop.cpp +++ b/compiler-rt/lib/fuzzer/FuzzerLoop.cpp @@ -153,7 +153,7 @@ Fuzzer::Fuzzer(UserCallback CB, InputCorpus &Corpus, MutationDispatcher &MD, if (!Options.OutputCorpus.empty() && Options.ReloadIntervalSec) EpochOfLastReadOfOutputCorpus = GetEpoch(Options.OutputCorpus); MaxInputLen = MaxMutationLen = Options.MaxLen; - TmpMaxMutationLen = Max(size_t(4), Corpus.MaxInputSize()); + TmpMaxMutationLen = 0; // Will be set once we load the corpus. AllocateCurrentUnitData(); CurrentUnitSize = 0; memset(BaseSha1, 0, sizeof(BaseSha1)); @@ -781,6 +781,10 @@ void Fuzzer::Loop(const Vector &CorpusDirs, TPC.SetPrintNewPCs(Options.PrintNewCovPcs); TPC.SetPrintNewFuncs(Options.PrintNewCovFuncs); system_clock::time_point LastCorpusReload = system_clock::now(); + + TmpMaxMutationLen = + Min(MaxMutationLen, Max(size_t(4), Corpus.MaxInputSize())); + while (true) { auto Now = system_clock::now(); if (duration_cast(Now - LastCorpusReload).count() >= -- cgit v1.2.3