summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2017-03-15 20:59:27 +0000
committerVitaly Buka <vitalybuka@google.com>2017-03-15 20:59:27 +0000
commitb99247e608f7036727371602b82b768a53b1a01c (patch)
tree109d0a3c31c346fe8beaa17eb52232210841179b /llvm/lib/Fuzzer
parent4747cf5677d2678a25e63a55da6bc7703488809f (diff)
downloadbcm5719-llvm-b99247e608f7036727371602b82b768a53b1a01c.tar.gz
bcm5719-llvm-b99247e608f7036727371602b82b768a53b1a01c.zip
[libFuzzer] Use ChooseUnitIdxToMutate to pick item for crossover.
Differential Revision: https://reviews.llvm.org/D30683 llvm-svn: 297891
Diffstat (limited to 'llvm/lib/Fuzzer')
-rw-r--r--llvm/lib/Fuzzer/FuzzerMutate.cpp2
-rw-r--r--llvm/lib/Fuzzer/FuzzerMutate.h4
2 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerMutate.cpp b/llvm/lib/Fuzzer/FuzzerMutate.cpp
index c9768e4a5f2..2010521ac38 100644
--- a/llvm/lib/Fuzzer/FuzzerMutate.cpp
+++ b/llvm/lib/Fuzzer/FuzzerMutate.cpp
@@ -77,7 +77,7 @@ size_t MutationDispatcher::Mutate_CustomCrossOver(uint8_t *Data, size_t Size,
size_t MaxSize) {
if (!Corpus || Corpus->size() < 2 || Size == 0)
return 0;
- size_t Idx = Rand(Corpus->size());
+ size_t Idx = Corpus->ChooseUnitIdxToMutate(Rand);
const Unit &Other = (*Corpus)[Idx];
if (Other.empty())
return 0;
diff --git a/llvm/lib/Fuzzer/FuzzerMutate.h b/llvm/lib/Fuzzer/FuzzerMutate.h
index 8c8fb3fd74c..9c946eab9f7 100644
--- a/llvm/lib/Fuzzer/FuzzerMutate.h
+++ b/llvm/lib/Fuzzer/FuzzerMutate.h
@@ -88,7 +88,7 @@ public:
void ClearAutoDictionary();
void PrintRecommendedDictionary();
- void SetCorpus(const InputCorpus *Corpus) { this->Corpus = Corpus; }
+ void SetCorpus(InputCorpus *Corpus) { this->Corpus = Corpus; }
Random &GetRand() { return Rand; }
@@ -141,7 +141,7 @@ private:
DictionaryEntry CmpDictionaryEntriesDeque[kCmpDictionaryEntriesDequeSize];
size_t CmpDictionaryEntriesDequeIdx = 0;
- const InputCorpus *Corpus = nullptr;
+ InputCorpus *Corpus = nullptr;
std::vector<uint8_t> MutateInPlaceHere;
// CustomCrossOver needs its own buffer as a custom implementation may call
// LLVMFuzzerMutate, which in turn may resize MutateInPlaceHere.
OpenPOWER on IntegriCloud