| // Copyright 2017 The PDFium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "public/cpp/fpdf_scopers.h" | |
| #include "public/fpdf_edit.h" | |
| #include "public/fpdfview.h" | |
| static constexpr size_t kMaxFuzzBytes = 1024 * 1024 * 1024; // 1 GB. | |
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { | |
| if (size < 2 || size > kMaxFuzzBytes) | |
| return 0; | |
| ScopedFPDFDocument doc(FPDF_CreateNewDocument()); | |
| ScopedFPDFPage page(FPDFPage_New(doc.get(), 0, 612, 792)); | |
| int font_type = data[0]; | |
| FPDF_BOOL cid = data[1]; | |
| data += 2; | |
| size -= 2; | |
| ScopedFPDFFont font(FPDFText_LoadFont( | |
| doc.get(), data, static_cast<uint32_t>(size), font_type, cid)); | |
| if (!font) | |
| return 0; | |
| FPDF_PAGEOBJECT text_object = | |
| FPDFPageObj_CreateTextObj(doc.get(), font.get(), 12.0f); | |
| FPDFPage_InsertObject(page.get(), text_object); | |
| FPDFPage_GenerateContent(page.get()); | |
| return 0; | |
| } |