Add a fuzzer for flatbuffers, derived from the one used in Chromium:
authorWouter van Oortmerssen <wvo@google.com>
Mon, 23 May 2016 23:35:20 +0000 (16:35 -0700)
committerWouter van Oortmerssen <wvo@google.com>
Mon, 23 May 2016 23:35:20 +0000 (16:35 -0700)
https://code.google.com/p/chromium/codesearch#chromium/src/testing/libfuzzer/fuzzers/flatbuffers_verifier_fuzzer.cc

(mirrored from cl 122676317)

Change-Id: I0074af435cf37f5e6368b040563c3733d9e02345

tests/fuzzer/flatbuffers_verifier_corpus/fuzz-0-flatbuffers_verifier_fuzzer [new file with mode: 0644]
tests/fuzzer/flatbuffers_verifier_fuzzer.cc [new file with mode: 0644]

diff --git a/tests/fuzzer/flatbuffers_verifier_corpus/fuzz-0-flatbuffers_verifier_fuzzer b/tests/fuzzer/flatbuffers_verifier_corpus/fuzz-0-flatbuffers_verifier_fuzzer
new file mode 100644 (file)
index 0000000..ada82f1
Binary files /dev/null and b/tests/fuzzer/flatbuffers_verifier_corpus/fuzz-0-flatbuffers_verifier_fuzzer differ
diff --git a/tests/fuzzer/flatbuffers_verifier_fuzzer.cc b/tests/fuzzer/flatbuffers_verifier_fuzzer.cc
new file mode 100644 (file)
index 0000000..d2fa73a
--- /dev/null
@@ -0,0 +1,14 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+#include <stddef.h>
+#include <stdint.h>
+#include <string>
+
+#include "third_party/flatbuffers/tests/monster_test_generated.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  flatbuffers::Verifier verifier(data, size);
+  MyGame::Example::VerifyMonsterBuffer(verifier);
+  return 0;
+}