diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
index bdbb939..e098112 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
@@ -4907,11 +4907,11 @@
   if (index == nFirstAvailPage)
     return IPDF_DataAvail::DataAvailable;
   FX_DWORD dwLength = GetItemLength(index, m_szPageOffsetArray);
-  if (!dwLength ||
-      !m_pDataAvail->IsDataAvail(m_szPageOffsetArray[index], dwLength,
-                                 pHints)) {
+  // If two pages have the same offset, it should be treated as an error.
+  if (!dwLength)
+    return IPDF_DataAvail::DataError;
+  if (!m_pDataAvail->IsDataAvail(m_szPageOffsetArray[index], dwLength, pHints))
     return IPDF_DataAvail::DataNotAvailable;
-  }
   // Download data of shared objects in the page.
   FX_DWORD offset = 0;
   for (int i = 0; i < index; ++i) {
@@ -4920,7 +4920,7 @@
   CPDF_Object* pFirstPageObj = m_pLinearizedDict->GetElementValue("O");
   int nFirstPageObjNum = pFirstPageObj ? pFirstPageObj->GetInteger() : -1;
   if (nFirstPageObjNum < 0)
-    return FALSE;  // TODO(thestig): Fix this and the return type.
+    return IPDF_DataAvail::DataError;
   FX_DWORD dwIndex = 0;
   FX_DWORD dwObjNum = 0;
   for (int j = 0; j < m_dwNSharedObjsArray[index]; ++j) {
@@ -4933,8 +4933,10 @@
       continue;
     }
     dwLength = GetItemLength(dwIndex, m_szSharedObjOffsetArray);
-    if (!dwLength ||
-        !m_pDataAvail->IsDataAvail(m_szSharedObjOffsetArray[dwIndex], dwLength,
+    // If two objects have the same offset, it should be treated as an error.
+    if (!dwLength)
+      return IPDF_DataAvail::DataError;
+    if (!m_pDataAvail->IsDataAvail(m_szSharedObjOffsetArray[dwIndex], dwLength,
                                    pHints)) {
       return IPDF_DataAvail::DataNotAvailable;
     }
