]> granicus.if.org Git - llvm/commitdiff
Revert "[libFuzzer] Use ChooseUnitIdxToMutate to pick item for crossover."
authorVitaly Buka <vitalybuka@google.com>
Wed, 15 Mar 2017 23:08:18 +0000 (23:08 +0000)
committerVitaly Buka <vitalybuka@google.com>
Wed, 15 Mar 2017 23:08:18 +0000 (23:08 +0000)
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

lib/Fuzzer/FuzzerMutate.cpp
lib/Fuzzer/FuzzerMutate.h

index 2010521ac38026262fdf84aa2063839b259020b7..c9768e4a5f28a6e4c9ff6844de97ce2802e6a280 100644 (file)
@@ -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;
index 9c946eab9f717620cf06461faed0bc23974727b0..8c8fb3fd74c7b2dd64ba190df0772f81e201d50e 100644 (file)
@@ -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<uint8_t> MutateInPlaceHere;
   // CustomCrossOver needs its own buffer as a custom implementation may call
   // LLVMFuzzerMutate, which in turn may resize MutateInPlaceHere.