diff --git a/core/fpdfapi/fpdf_parser/cpdf_hint_tables.cpp b/core/fpdfapi/fpdf_parser/cpdf_hint_tables.cpp
index 4d48ab4..f1e74dc 100644
--- a/core/fpdfapi/fpdf_parser/cpdf_hint_tables.cpp
+++ b/core/fpdfapi/fpdf_parser/cpdf_hint_tables.cpp
@@ -60,6 +60,8 @@
 
   // Item 1: The least number of objects in a page.
   uint32_t dwObjLeastNum = hStream->GetBits(32);
+  if (!dwObjLeastNum)
+    return FALSE;
 
   // Item 2: The location of the first page's page object.
   uint32_t dwFirstObjLoc = hStream->GetBits(32);
@@ -78,13 +80,19 @@
   // Item 3: The number of bits needed to represent the difference
   // between the greatest and least number of objects in a page.
   uint32_t dwDeltaObjectsBits = hStream->GetBits(16);
+  if (!dwDeltaObjectsBits)
+    return FALSE;
 
   // Item 4: The least length of a page in bytes.
   uint32_t dwPageLeastLen = hStream->GetBits(32);
+  if (!dwPageLeastLen)
+    return FALSE;
 
   // Item 5: The number of bits needed to represent the difference
   // between the greatest and least length of a page, in bytes.
   uint32_t dwDeltaPageLenBits = hStream->GetBits(16);
+  if (!dwDeltaPageLenBits)
+    return FALSE;
 
   // Skip Item 6, 7, 8, 9 total 96 bits.
   hStream->SkipBits(96);
@@ -96,12 +104,16 @@
   // Item 11: The number of bits needed to represent the numerically
   // greatest shared object identifier used by the pages.
   uint32_t dwSharedIdBits = hStream->GetBits(16);
+  if (!dwSharedObjBits)
+    return FALSE;
 
   // Item 12: The number of bits needed to represent the numerator of
   // the fractional position for each shared object reference. For each
   // shared object referenced from a page, there is an indication of
   // where in the page's content stream the object is first referenced.
   uint32_t dwSharedNumeratorBits = hStream->GetBits(16);
+  if (!dwSharedIdBits)
+    return FALSE;
 
   // Item 13: Skip Item 13 which has 16 bits.
   hStream->SkipBits(16);
@@ -113,7 +125,7 @@
     return false;
 
   const int nPages = GetNumberOfPages();
-  if (nPages < 1)
+  if (nPages < 1 || nPages >= FPDF_PAGE_MAX_NUM)
     return false;
 
   const uint32_t dwPages = pdfium::base::checked_cast<uint32_t>(nPages);
@@ -136,13 +148,14 @@
   if (!CanReadFromBitStream(hStream, required_bits))
     return false;
 
-  CFX_ArrayTemplate<uint32_t> dwPageLenArray;
+  std::vector<uint32_t> dwPageLenArray;
   for (int i = 0; i < nPages; ++i) {
     FX_SAFE_UINT32 safePageLen = hStream->GetBits(dwDeltaPageLenBits);
     safePageLen += dwPageLeastLen;
     if (!safePageLen.IsValid())
       return false;
-    dwPageLenArray.Add(safePageLen.ValueOrDie());
+
+    dwPageLenArray.push_back(safePageLen.ValueOrDie());
   }
 
   int nOffsetE = GetEndOfFirstPageOffset();
diff --git a/core/fpdfapi/fpdf_parser/cpdf_hint_tables.h b/core/fpdfapi/fpdf_parser/cpdf_hint_tables.h
index 35fbdcb..cda0925 100644
--- a/core/fpdfapi/fpdf_parser/cpdf_hint_tables.h
+++ b/core/fpdfapi/fpdf_parser/cpdf_hint_tables.h
@@ -20,7 +20,7 @@
 class CPDF_HintTables {
  public:
   CPDF_HintTables(CPDF_DataAvail* pDataAvail, CPDF_Dictionary* pLinearized);
-  ~CPDF_HintTables();
+  virtual ~CPDF_HintTables();
 
   bool GetPagePos(int index,
                   FX_FILESIZE* szPageStartPos,
@@ -39,12 +39,13 @@
   uint32_t GetItemLength(int index, const std::vector<FX_FILESIZE>& szArray);
 
  private:
-  int GetEndOfFirstPageOffset() const;
-  int GetNumberOfPages() const;
-  int GetFirstPageObjectNumber() const;
-  int GetFirstPageNumber() const;
-  int ReadPrimaryHintStreamOffset() const;
-  int ReadPrimaryHintStreamLength() const;
+  // Tests can override.
+  virtual int GetEndOfFirstPageOffset() const;
+  virtual int GetNumberOfPages() const;
+  virtual int GetFirstPageObjectNumber() const;
+  virtual int GetFirstPageNumber() const;
+  virtual int ReadPrimaryHintStreamOffset() const;
+  virtual int ReadPrimaryHintStreamLength() const;
 
   // Helper for the ReadPrimaryHintStream methods above.
   int ReadPrimaryHintStream(int index) const;
diff --git a/testing/DEPS b/testing/DEPS
index babefb8..d3cc6f3 100644
--- a/testing/DEPS
+++ b/testing/DEPS
@@ -1,13 +1,14 @@
 include_rules = [
-  '+core/include',
+  '+core/fpdfapi',
   '+core/fxcodec',
   '+core/fxcrt/include',
   '+core/fxge/include',
+  '+core/include',
   '+fxjs/include',
   '+public',
   '+v8',
   '+xfa/fde',
   '+xfa/fgas',
-  '+xfa/fxfa/parser',
   '+xfa/fxfa/fm2js',
+  '+xfa/fxfa/parser',
 ]
diff --git a/testing/libfuzzer/BUILD.gn b/testing/libfuzzer/BUILD.gn
index 718a1db..811618d 100644
--- a/testing/libfuzzer/BUILD.gn
+++ b/testing/libfuzzer/BUILD.gn
@@ -183,3 +183,18 @@
     ":libfuzzer_config",
   ]
 }
+
+source_set("pdf_hint_table_fuzzer") {
+  testonly = true
+  sources = [
+    "pdf_hint_table_fuzzer.cc",
+  ]
+  deps = [
+    "//third_party/pdfium:pdfium",
+  ]
+  configs -= [ "//build/config/compiler:chromium_code" ]
+  configs += [
+    "//build/config/compiler:no_chromium_code",
+    ":libfuzzer_config",
+  ]
+}
diff --git a/testing/libfuzzer/pdf_hint_table_fuzzer.cc b/testing/libfuzzer/pdf_hint_table_fuzzer.cc
new file mode 100644
index 0000000..d14d946
--- /dev/null
+++ b/testing/libfuzzer/pdf_hint_table_fuzzer.cc
@@ -0,0 +1,94 @@
+// Copyright 2016 The PDFium 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 <cstdint>
+
+#include "core/fpdfapi/fpdf_parser/cpdf_hint_tables.h"
+#include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
+
+struct DummyLinearizedDictionary {
+  int end_of_first_page_offset;
+  int number_of_pages;
+  int first_page_object_number;
+  int first_page_number;
+  int primary_hint_stream_offset;
+  int primary_hint_stream_length;
+  int shared_hint_table_offset;
+};
+
+int32_t GetData(const int32_t** data32, const uint8_t** data, size_t* size) {
+  const int32_t* ret = *data32;
+  ++(*data32);
+  *data += 4;
+  *size -= 4;
+  return *ret;
+}
+
+class HintTableForFuzzing : public CPDF_HintTables {
+ public:
+  HintTableForFuzzing(DummyLinearizedDictionary* dict,
+                      CPDF_Dictionary* linearized_dict)
+      : CPDF_HintTables(nullptr, linearized_dict), dict_(dict) {}
+  ~HintTableForFuzzing() {}
+
+  void Fuzz(const uint8_t* data, size_t size) {
+    if (dict_->shared_hint_table_offset <= 0)
+      return;
+
+    if (size < static_cast<size_t>(dict_->shared_hint_table_offset))
+      return;
+
+    CFX_BitStream bs;
+    bs.Init(data, size);
+    if (!ReadPageHintTable(&bs))
+      return;
+    ReadSharedObjHintTable(&bs, dict_->shared_hint_table_offset);
+  }
+
+ private:
+  int GetEndOfFirstPageOffset() const override {
+    return dict_->end_of_first_page_offset;
+  }
+  int GetNumberOfPages() const override { return dict_->number_of_pages; }
+  int GetFirstPageObjectNumber() const override {
+    return dict_->first_page_object_number;
+  }
+  int GetFirstPageNumber() const override { return dict_->first_page_number; }
+  int ReadPrimaryHintStreamOffset() const override {
+    return dict_->primary_hint_stream_offset;
+  }
+  int ReadPrimaryHintStreamLength() const override {
+    return dict_->primary_hint_stream_length;
+  }
+
+  DummyLinearizedDictionary* const dict_;
+};
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+  // Need 28 bytes for |dummy_dict|.
+  // The header section of page offset hint table is 36 bytes.
+  // The header section of shared object hint table is 24 bytes.
+  if (size < 28 + 36 + 24)
+    return 0;
+
+  const int32_t* data32 = reinterpret_cast<const int32_t*>(data);
+  DummyLinearizedDictionary dummy_dict;
+  dummy_dict.end_of_first_page_offset = GetData(&data32, &data, &size);
+  dummy_dict.number_of_pages = GetData(&data32, &data, &size);
+  dummy_dict.first_page_object_number = GetData(&data32, &data, &size);
+  dummy_dict.first_page_number = GetData(&data32, &data, &size);
+  dummy_dict.primary_hint_stream_offset = GetData(&data32, &data, &size);
+  dummy_dict.primary_hint_stream_length = GetData(&data32, &data, &size);
+  dummy_dict.shared_hint_table_offset = GetData(&data32, &data, &size);
+
+  CPDF_Dictionary* dummy_linearized_dict = new CPDF_Dictionary;
+
+  {
+    HintTableForFuzzing hint_table(&dummy_dict, dummy_linearized_dict);
+    hint_table.Fuzz(data, size);
+  }
+
+  dummy_linearized_dict->Release();
+  return 0;
+}
