MCPcopy Create free account
hub / github.com/HexHive/NASS / ParseFlags

Function ParseFlags

fuzz/libfuzzer/FuzzerDriver.cpp:198–226  ·  view source on GitHub ↗

We don't use any library to minimize dependencies.

Source from the content-addressed store, hash-verified

196
197// We don't use any library to minimize dependencies.
198static void ParseFlags(const std::vector<std::string> &Args,
199 const ExternalFunctions *EF) {
200 for (size_t F = 0; F < kNumFlags; F++) {
201 if (FlagDescriptions[F].IntFlag)
202 *FlagDescriptions[F].IntFlag = FlagDescriptions[F].Default;
203 if (FlagDescriptions[F].UIntFlag)
204 *FlagDescriptions[F].UIntFlag =
205 static_cast<unsigned int>(FlagDescriptions[F].Default);
206 if (FlagDescriptions[F].StrFlag)
207 *FlagDescriptions[F].StrFlag = nullptr;
208 }
209
210 // Disable len_control by default, if LLVMFuzzerCustomMutator is used.
211 if (EF->LLVMFuzzerCustomMutator) {
212 Flags.len_control = 0;
213 Printf("INFO: found LLVMFuzzerCustomMutator (%p). "
214 "Disabling -len_control by default.\n", EF->LLVMFuzzerCustomMutator);
215 }
216
217 Inputs = new std::vector<std::string>;
218 for (size_t A = 1; A < Args.size(); A++) {
219 if (ParseOneFlag(Args[A].c_str())) {
220 if (Flags.ignore_remaining_args)
221 break;
222 continue;
223 }
224 Inputs->push_back(Args[A]);
225 }
226}
227
228static std::mutex Mu;
229

Callers 1

FuzzerDriverFunction · 0.85

Calls 5

ParseOneFlagFunction · 0.85
PrintfFunction · 0.70
sizeMethod · 0.45
c_strMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected