From: Vitaly Buka Date: Wed, 15 Mar 2017 23:08:18 +0000 (+0000) Subject: Revert "[libFuzzer] Use ChooseUnitIdxToMutate to pick item for crossover." X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=83daa29a8670f35399706fd36c0039bf83fe6df6;p=llvm Revert "[libFuzzer] Use ChooseUnitIdxToMutate to pick item for crossover." Fails LLVMFuzzer.LLVMFuzzer.value-profile-strncmp.test. This reverts commit r297891. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297912 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Fuzzer/FuzzerMutate.cpp b/lib/Fuzzer/FuzzerMutate.cpp index 2010521ac38..c9768e4a5f2 100644 --- a/lib/Fuzzer/FuzzerMutate.cpp +++ b/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 = Corpus->ChooseUnitIdxToMutate(Rand); + size_t Idx = Rand(Corpus->size()); const Unit &Other = (*Corpus)[Idx]; if (Other.empty()) return 0; diff --git a/lib/Fuzzer/FuzzerMutate.h b/lib/Fuzzer/FuzzerMutate.h index 9c946eab9f7..8c8fb3fd74c 100644 --- a/lib/Fuzzer/FuzzerMutate.h +++ b/lib/Fuzzer/FuzzerMutate.h @@ -88,7 +88,7 @@ public: void ClearAutoDictionary(); void PrintRecommendedDictionary(); - void SetCorpus(InputCorpus *Corpus) { this->Corpus = Corpus; } + void SetCorpus(const InputCorpus *Corpus) { this->Corpus = Corpus; } Random &GetRand() { return Rand; } @@ -141,7 +141,7 @@ private: DictionaryEntry CmpDictionaryEntriesDeque[kCmpDictionaryEntriesDequeSize]; size_t CmpDictionaryEntriesDequeIdx = 0; - InputCorpus *Corpus = nullptr; + const InputCorpus *Corpus = nullptr; std::vector MutateInPlaceHere; // CustomCrossOver needs its own buffer as a custom implementation may call // LLVMFuzzerMutate, which in turn may resize MutateInPlaceHere.