Prechádzať zdrojové kódy

Fuzzing: Run serializer too

Benoit Blanchon 9 rokov pred
rodič
commit
20431debe0
2 zmenil súbory, kde vykonal 5 pridanie a 2 odobranie
  1. 1 1
      fuzzing/fuzz.sh
  2. 4 1
      fuzzing/fuzzer.cpp

+ 1 - 1
fuzzing/fuzz.sh

@@ -6,4 +6,4 @@ export CXX='clang++'
 export CXXFLAGS='-fsanitize-coverage=trace-pc-guard -fsanitize=address'
 export LIB_FUZZING_ENGINE=-lFuzzer
 make OUT=.
-./json_fuzzer my_corpus seed_corpus
+./json_fuzzer my_corpus seed_corpus -max_len=1024 -timeout=10

+ 4 - 1
fuzzing/fuzzer.cpp

@@ -18,6 +18,9 @@ class memstream : public std::istream {
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   DynamicJsonBuffer jsonBuffer;
   memstream json(data, size);
-  jsonBuffer.parse(json);
+  JsonVariant variant = jsonBuffer.parse(json);
+  if (variant.success()) {
+    variant.as<std::string>();  // <- serialize to JSON
+  }
   return 0;
 }