summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUILD14
-rw-r--r--tests/file_descriptor_parsenew_fuzzer.cc16
2 files changed, 30 insertions, 0 deletions
diff --git a/BUILD b/BUILD
index 1d27b79..1fbdda4 100644
--- a/BUILD
+++ b/BUILD
@@ -356,6 +356,20 @@ cc_test(
],
)
+# OSS-Fuzz test
+cc_binary(
+ name = "file_descriptor_parsenew_fuzzer",
+ srcs = ["tests/file_descriptor_parsenew_fuzzer.cc"],
+ copts = CPPOTS + ["-fsanitizer=fuzzer,address"],
+ deps = [
+ ":descriptor_upbproto",
+ ":descriptor_upbreflection",
+ ":upb",
+ ":upb_pb",
+ ":upb_test",
+ ],
+)
+
# copybara:strip_for_google3_begin
upb_proto_reflection_library(
name = "descriptor_upbreflection",
diff --git a/tests/file_descriptor_parsenew_fuzzer.cc b/tests/file_descriptor_parsenew_fuzzer.cc
new file mode 100644
index 0000000..4166469
--- /dev/null
+++ b/tests/file_descriptor_parsenew_fuzzer.cc
@@ -0,0 +1,16 @@
+#include <cstddef>
+#include <cstdint>
+#include <cstdlib>
+
+#include "google/protobuf/descriptor.upb.h"
+#include "upb/def.h"
+#include "upb/msg.h"
+#include "upb/upb.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ upb_strview strview =
+ upb_strview_make(reinterpret_cast<const char*>(data), size);
+ upb::Arena arena;
+ google_protobuf_FileDescriptorProto_parsenew(strview, arena.ptr());
+ return 0;
+}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback