• Home
  • Raw
  • Download

Lines Matching refs:Size

71 size_t MutationDispatcher::Mutate_Custom(uint8_t *Data, size_t Size,  in Mutate_Custom()  argument
73 return EF->LLVMFuzzerCustomMutator(Data, Size, MaxSize, Rand.Rand()); in Mutate_Custom()
76 size_t MutationDispatcher::Mutate_CustomCrossOver(uint8_t *Data, size_t Size, in Mutate_CustomCrossOver() argument
78 if (!Corpus || Corpus->size() < 2 || Size == 0) in Mutate_CustomCrossOver()
87 Data, Size, Other.data(), Other.size(), U.data(), U.size(), Rand.Rand()); in Mutate_CustomCrossOver()
95 size_t MutationDispatcher::Mutate_ShuffleBytes(uint8_t *Data, size_t Size, in Mutate_ShuffleBytes() argument
97 if (Size > MaxSize) return 0; in Mutate_ShuffleBytes()
98 assert(Size); in Mutate_ShuffleBytes()
100 Rand(std::min(Size, (size_t)8)) + 1; // [1,8] and <= Size. in Mutate_ShuffleBytes()
101 size_t ShuffleStart = Rand(Size - ShuffleAmount); in Mutate_ShuffleBytes()
102 assert(ShuffleStart + ShuffleAmount <= Size); in Mutate_ShuffleBytes()
105 return Size; in Mutate_ShuffleBytes()
108 size_t MutationDispatcher::Mutate_EraseBytes(uint8_t *Data, size_t Size, in Mutate_EraseBytes() argument
110 assert(Size); in Mutate_EraseBytes()
111 if (Size == 1) return 0; in Mutate_EraseBytes()
112 size_t N = Rand(Size / 2) + 1; in Mutate_EraseBytes()
113 assert(N < Size); in Mutate_EraseBytes()
114 size_t Idx = Rand(Size - N + 1); in Mutate_EraseBytes()
116 memmove(Data + Idx, Data + Idx + N, Size - Idx - N); in Mutate_EraseBytes()
118 return Size - N; in Mutate_EraseBytes()
121 size_t MutationDispatcher::Mutate_InsertByte(uint8_t *Data, size_t Size, in Mutate_InsertByte() argument
123 if (Size >= MaxSize) return 0; in Mutate_InsertByte()
124 size_t Idx = Rand(Size + 1); in Mutate_InsertByte()
126 memmove(Data + Idx + 1, Data + Idx, Size - Idx); in Mutate_InsertByte()
128 return Size + 1; in Mutate_InsertByte()
132 size_t Size, in Mutate_InsertRepeatedBytes() argument
135 if (Size + kMinBytesToInsert >= MaxSize) return 0; in Mutate_InsertRepeatedBytes()
136 size_t MaxBytesToInsert = std::min(MaxSize - Size, (size_t)128); in Mutate_InsertRepeatedBytes()
138 assert(Size + N <= MaxSize && N); in Mutate_InsertRepeatedBytes()
139 size_t Idx = Rand(Size + 1); in Mutate_InsertRepeatedBytes()
141 memmove(Data + Idx + N, Data + Idx, Size - Idx); in Mutate_InsertRepeatedBytes()
146 return Size + N; in Mutate_InsertRepeatedBytes()
149 size_t MutationDispatcher::Mutate_ChangeByte(uint8_t *Data, size_t Size, in Mutate_ChangeByte() argument
151 if (Size > MaxSize) return 0; in Mutate_ChangeByte()
152 size_t Idx = Rand(Size); in Mutate_ChangeByte()
154 return Size; in Mutate_ChangeByte()
157 size_t MutationDispatcher::Mutate_ChangeBit(uint8_t *Data, size_t Size, in Mutate_ChangeBit() argument
159 if (Size > MaxSize) return 0; in Mutate_ChangeBit()
160 size_t Idx = Rand(Size); in Mutate_ChangeBit()
162 return Size; in Mutate_ChangeBit()
166 size_t Size, in Mutate_AddWordFromManualDictionary() argument
168 return AddWordFromDictionary(ManualDictionary, Data, Size, MaxSize); in Mutate_AddWordFromManualDictionary()
172 uint8_t *Data, size_t Size, size_t MaxSize) { in Mutate_AddWordFromTemporaryAutoDictionary() argument
173 return AddWordFromDictionary(TempAutoDictionary, Data, Size, MaxSize); in Mutate_AddWordFromTemporaryAutoDictionary()
176 size_t MutationDispatcher::ApplyDictionaryEntry(uint8_t *Data, size_t Size, in ApplyDictionaryEntry() argument
181 DE.GetPositionHint() + W.size() < Size && in ApplyDictionaryEntry()
184 if (Size + W.size() > MaxSize) return 0; in ApplyDictionaryEntry()
185 size_t Idx = UsePositionHint ? DE.GetPositionHint() : Rand(Size + 1); in ApplyDictionaryEntry()
186 memmove(Data + Idx + W.size(), Data + Idx, Size - Idx); in ApplyDictionaryEntry()
188 Size += W.size(); in ApplyDictionaryEntry()
190 if (W.size() > Size) return 0; in ApplyDictionaryEntry()
191 size_t Idx = UsePositionHint ? DE.GetPositionHint() : Rand(Size - W.size()); in ApplyDictionaryEntry()
194 return Size; in ApplyDictionaryEntry()
205 T Arg1, T Arg2, const uint8_t *Data, size_t Size) { in MakeDictionaryEntryFromCMP() argument
210 const uint8_t *End = Data + Size; in MakeDictionaryEntryFromCMP()
236 uint8_t *Data, size_t Size, size_t MaxSize) { in Mutate_AddWordFromTORC() argument
241 DE = MakeDictionaryEntryFromCMP(X.A, X.B, Data, Size); in Mutate_AddWordFromTORC()
246 Size); in Mutate_AddWordFromTORC()
248 DE = MakeDictionaryEntryFromCMP(X.A, X.B, Data, Size); in Mutate_AddWordFromTORC()
250 Size = ApplyDictionaryEntry(Data, Size, MaxSize, DE); in Mutate_AddWordFromTORC()
251 if (!Size) return 0; in Mutate_AddWordFromTORC()
257 return Size; in Mutate_AddWordFromTORC()
261 uint8_t *Data, size_t Size, size_t MaxSize) { in Mutate_AddWordFromPersistentAutoDictionary() argument
262 return AddWordFromDictionary(PersistentAutoDictionary, Data, Size, MaxSize); in Mutate_AddWordFromPersistentAutoDictionary()
266 size_t Size, size_t MaxSize) { in AddWordFromDictionary() argument
267 if (Size > MaxSize) return 0; in AddWordFromDictionary()
270 Size = ApplyDictionaryEntry(Data, Size, MaxSize, DE); in AddWordFromDictionary()
271 if (!Size) return 0; in AddWordFromDictionary()
274 return Size; in AddWordFromDictionary()
318 size_t MutationDispatcher::Mutate_CopyPart(uint8_t *Data, size_t Size, in Mutate_CopyPart() argument
320 if (Size > MaxSize) return 0; in Mutate_CopyPart()
322 return CopyPartOf(Data, Size, Data, Size); in Mutate_CopyPart()
324 return InsertPartOf(Data, Size, Data, Size, MaxSize); in Mutate_CopyPart()
327 size_t MutationDispatcher::Mutate_ChangeASCIIInteger(uint8_t *Data, size_t Size, in Mutate_ChangeASCIIInteger() argument
329 if (Size > MaxSize) return 0; in Mutate_ChangeASCIIInteger()
330 size_t B = Rand(Size); in Mutate_ChangeASCIIInteger()
331 while (B < Size && !isdigit(Data[B])) B++; in Mutate_ChangeASCIIInteger()
332 if (B == Size) return 0; in Mutate_ChangeASCIIInteger()
334 while (E < Size && isdigit(Data[E])) E++; in Mutate_ChangeASCIIInteger()
358 return Size; in Mutate_ChangeASCIIInteger()
362 size_t ChangeBinaryInteger(uint8_t *Data, size_t Size, Random &Rand) { in ChangeBinaryInteger() argument
363 if (Size < sizeof(T)) return 0; in ChangeBinaryInteger()
364 size_t Off = Rand(Size - sizeof(T) + 1); in ChangeBinaryInteger()
365 assert(Off + sizeof(T) <= Size); in ChangeBinaryInteger()
368 Val = Size; in ChangeBinaryInteger()
383 return Size; in ChangeBinaryInteger()
387 size_t Size, in Mutate_ChangeBinaryInteger() argument
389 if (Size > MaxSize) return 0; in Mutate_ChangeBinaryInteger()
391 case 3: return ChangeBinaryInteger<uint64_t>(Data, Size, Rand); in Mutate_ChangeBinaryInteger()
392 case 2: return ChangeBinaryInteger<uint32_t>(Data, Size, Rand); in Mutate_ChangeBinaryInteger()
393 case 1: return ChangeBinaryInteger<uint16_t>(Data, Size, Rand); in Mutate_ChangeBinaryInteger()
394 case 0: return ChangeBinaryInteger<uint8_t>(Data, Size, Rand); in Mutate_ChangeBinaryInteger()
400 size_t MutationDispatcher::Mutate_CrossOver(uint8_t *Data, size_t Size, in Mutate_CrossOver() argument
402 if (Size > MaxSize) return 0; in Mutate_CrossOver()
403 if (!Corpus || Corpus->size() < 2 || Size == 0) return 0; in Mutate_CrossOver()
412 NewSize = CrossOver(Data, Size, O.data(), O.size(), U.data(), U.size()); in Mutate_CrossOver()
474 size_t MutationDispatcher::Mutate(uint8_t *Data, size_t Size, size_t MaxSize) { in Mutate() argument
475 return MutateImpl(Data, Size, MaxSize, Mutators); in Mutate()
478 size_t MutationDispatcher::DefaultMutate(uint8_t *Data, size_t Size, in DefaultMutate() argument
480 return MutateImpl(Data, Size, MaxSize, DefaultMutators); in DefaultMutate()
484 size_t MutationDispatcher::MutateImpl(uint8_t *Data, size_t Size, in MutateImpl() argument
488 if (Size == 0) { in MutateImpl()
495 assert(Size > 0); in MutateImpl()
501 size_t NewSize = (this->*(M.Fn))(Data, Size, MaxSize); in MutateImpl()
509 return std::min(Size, MaxSize); in MutateImpl()