diff options
Diffstat (limited to 'lib/Fuzzer/FuzzerMutate.h')
-rw-r--r-- | lib/Fuzzer/FuzzerMutate.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/Fuzzer/FuzzerMutate.h b/lib/Fuzzer/FuzzerMutate.h index d3c0b0012468..8c8fb3fd74c7 100644 --- a/lib/Fuzzer/FuzzerMutate.h +++ b/lib/Fuzzer/FuzzerMutate.h @@ -14,6 +14,7 @@ #include "FuzzerDefs.h" #include "FuzzerDictionary.h" +#include "FuzzerOptions.h" #include "FuzzerRandom.h" namespace fuzzer { @@ -113,9 +114,16 @@ private: template <class T> DictionaryEntry MakeDictionaryEntryFromCMP(T Arg1, T Arg2, const uint8_t *Data, size_t Size); + DictionaryEntry MakeDictionaryEntryFromCMP(const Word &Arg1, const Word &Arg2, + const uint8_t *Data, size_t Size); + DictionaryEntry MakeDictionaryEntryFromCMP(const void *Arg1, const void *Arg2, + const void *Arg1Mutation, + const void *Arg2Mutation, + size_t ArgSize, + const uint8_t *Data, size_t Size); Random &Rand; - const FuzzingOptions &Options; + const FuzzingOptions Options; // Dictionary provided by the user via -dict=DICT_FILE. Dictionary ManualDictionary; @@ -135,6 +143,9 @@ private: 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. + std::vector<uint8_t> CustomCrossOverInPlaceHere; std::vector<Mutator> Mutators; std::vector<Mutator> DefaultMutators; |