// 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;
}
