Prevent use of null pFileRead in CPDF_DataAvail.

Change-Id: I52e668ca410a0c6b96a789ecc18c993152047ead
Reviewed-on: https://pdfium-review.googlesource.com/9550
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp
index bc81e99..88755a9 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -57,17 +57,12 @@
   HintsAssigner(CPDF_ReadValidator* validator,
                 CPDF_DataAvail::DownloadHints* hints)
       : validator_(validator) {
-    if (validator_) {
-      validator_->ResetErrors();
-      validator_->SetDownloadHints(hints);
-    }
+    ASSERT(validator_);
+    validator_->ResetErrors();
+    validator_->SetDownloadHints(hints);
   }
 
-  ~HintsAssigner() {
-    if (validator_) {
-      validator_->SetDownloadHints(nullptr);
-    }
-  }
+  ~HintsAssigner() { validator_->SetDownloadHints(nullptr); }
 
  private:
   CFX_UnownedPtr<CPDF_ReadValidator> validator_;
@@ -83,16 +78,11 @@
     FileAvail* pFileAvail,
     const CFX_RetainPtr<IFX_SeekableReadStream>& pFileRead,
     bool bSupportHintTable)
-    : m_pFileAvail(pFileAvail),
-      m_pFileRead(
-          pFileRead
-              ? pdfium::MakeRetain<CPDF_ReadValidator>(pFileRead, m_pFileAvail)
-              : nullptr) {
+    : m_pFileAvail(pFileAvail) {
+  ASSERT(pFileRead);
+  m_pFileRead = pdfium::MakeRetain<CPDF_ReadValidator>(pFileRead, m_pFileAvail);
   m_Pos = 0;
-  m_dwFileLen = 0;
-  if (m_pFileRead) {
-    m_dwFileLen = (uint32_t)m_pFileRead->GetSize();
-  }
+  m_dwFileLen = m_pFileRead->GetSize();
   m_dwCurrentOffset = 0;
   m_dwXRefOffset = 0;
   m_dwTrailerOffset = 0;
@@ -237,13 +227,10 @@
 
 CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::IsDocAvail(
     DownloadHints* pHints) {
-  const HintsAssigner hints_assigner(m_pFileRead.Get(), pHints);
+  if (!m_dwFileLen)
+    return DataError;
 
-  if (!m_dwFileLen && m_pFileRead) {
-    m_dwFileLen = (uint32_t)m_pFileRead->GetSize();
-    if (!m_dwFileLen)
-      return DataError;
-  }
+  const HintsAssigner hints_assigner(m_pFileRead.Get(), pHints);
 
   while (!m_bDocAvail) {
     if (!CheckDocStatus(pHints))
@@ -744,9 +731,6 @@
   if (!m_pFileAvail->IsDataAvail(0, kReqSize))
     return LinearizationUnknown;
 
-  if (!m_pFileRead)
-    return NotLinearized;
-
   FX_FILESIZE dwSize = m_pFileRead->GetSize();
   if (dwSize < (FX_FILESIZE)kReqSize)
     return LinearizationUnknown;