From b99247e608f7036727371602b82b768a53b1a01c Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Wed, 15 Mar 2017 20:59:27 +0000 Subject: [libFuzzer] Use ChooseUnitIdxToMutate to pick item for crossover. Differential Revision: https://reviews.llvm.org/D30683 llvm-svn: 297891 --- llvm/lib/Fuzzer/FuzzerMutate.cpp | 2 +- llvm/lib/Fuzzer/FuzzerMutate.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Fuzzer') 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 MutateInPlaceHere; // CustomCrossOver needs its own buffer as a custom implementation may call // LLVMFuzzerMutate, which in turn may resize MutateInPlaceHere. -- cgit v1.2.3