summaryrefslogtreecommitdiffstats
path: root/fuzz/qpdf_read_memory_fuzzer.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-06-13 15:28:38 +0200
committerJay Berkenbilt <ejb@ql.org>2019-06-13 15:28:38 +0200
commit3d03024ab235cf09517b8b1125093a9062151da2 (patch)
treec67ed01909153d996e3a14411c9f2141cb3f3ed2 /fuzz/qpdf_read_memory_fuzzer.cc
parentd263a0493add9ea4bd6b7dae129cfc79b3108067 (diff)
downloadqpdf-3d03024ab235cf09517b8b1125093a9062151da2.tar.zst
oss-fuzz initial integration
Diffstat (limited to 'fuzz/qpdf_read_memory_fuzzer.cc')
-rw-r--r--fuzz/qpdf_read_memory_fuzzer.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/fuzz/qpdf_read_memory_fuzzer.cc b/fuzz/qpdf_read_memory_fuzzer.cc
new file mode 100644
index 00000000..d4db62b0
--- /dev/null
+++ b/fuzz/qpdf_read_memory_fuzzer.cc
@@ -0,0 +1,15 @@
+#include "qpdf/qpdf-c.h"
+
+#include <algorithm>
+#include <cstddef>
+#include <cstdlib>
+
+extern "C" int LLVMFuzzerTestOneInput(const unsigned char* data, size_t size) {
+ const size_t kMaxSize = 64 * 1024; // 64 KiB
+ size = std::min(size, kMaxSize);
+ _qpdf_data* qpdf = qpdf_init();
+ const char* buffer = reinterpret_cast<const char*>(data);
+ qpdf_read_memory(qpdf, /*description=*/"", buffer, size, /*password=*/"");
+ qpdf_cleanup(&qpdf);
+ return 0;
+}