Add pdfium fuzzing stub for LPM fuzzer

Stub is based off of pdfium_fuzzer.

Bug: chromium:969811
Change-Id: Ic37f1b4619a8fe7ed174e0677201f66a30a84809
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/55392
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/testing/fuzzers/BUILD.gn b/testing/fuzzers/BUILD.gn
index 9d2702b..aba2375 100644
--- a/testing/fuzzers/BUILD.gn
+++ b/testing/fuzzers/BUILD.gn
@@ -30,6 +30,7 @@
   "pdf_streamparser_fuzzer",
   "pdf_xml_fuzzer",
   "pdfium_fuzzer",
+  "pdfium_lpm_fuzzer",
 ]
 if (pdf_enable_v8) {
   fuzzer_list += [
@@ -538,3 +539,15 @@
   ]
   public_fuzzer = true
 }
+
+pdfium_fuzzer("pdfium_lpm_fuzzer") {
+  sources = [
+    "pdfium_lpm_fuzz_stub.cc",
+    "pdfium_lpm_fuzz_stub.h",
+  ]
+  deps = [
+    ":fuzzer_helper",
+    "../../:pdfium_public_headers",
+  ]
+  public_fuzzer = true
+}
diff --git a/testing/fuzzers/pdfium_lpm_fuzz_stub.cc b/testing/fuzzers/pdfium_lpm_fuzz_stub.cc
new file mode 100644
index 0000000..0989005
--- /dev/null
+++ b/testing/fuzzers/pdfium_lpm_fuzz_stub.cc
@@ -0,0 +1,22 @@
+// Copyright 2019 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 "testing/fuzzers/pdfium_fuzzer_helper.h"
+#include "testing/fuzzers/pdfium_lpm_fuzz_stub.h"
+
+class PDFiumLpmFuzzStub : public PDFiumFuzzerHelper {
+ public:
+  PDFiumLpmFuzzStub() = default;
+  ~PDFiumLpmFuzzStub() override = default;
+
+  int GetFormCallbackVersion() const override { return 1; }
+};
+
+void FuzzPdf(const char* pdf, size_t size) {
+  PDFiumLpmFuzzStub fuzz_stub;
+  fuzz_stub.RenderPdf(pdf, size);
+}
diff --git a/testing/fuzzers/pdfium_lpm_fuzz_stub.h b/testing/fuzzers/pdfium_lpm_fuzz_stub.h
new file mode 100644
index 0000000..e5f9416
--- /dev/null
+++ b/testing/fuzzers/pdfium_lpm_fuzz_stub.h
@@ -0,0 +1,14 @@
+// Copyright 2019 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.
+
+#ifndef TESTING_FUZZERS_PDFIUM_LPM_FUZZ_STUB_H_
+#define TESTING_FUZZERS_PDFIUM_LPM_FUZZ_STUB_H_
+
+#include "public/fpdfview.h"
+
+// LPM defines LLVMFuzzerTestOneInput, this function should be used by the LPM
+// harness to pass the deserialized proto to PDFium.
+FPDF_EXPORT void FuzzPdf(const char* pdf, size_t size);
+
+#endif  // TESTING_FUZZERS_PDFIUM_LPM_FUZZ_STUB_H_