Index: core/fpdfapi/fpdf_parser/cpdf_data_avail.cpp |
diff --git a/core/fpdfapi/fpdf_parser/cpdf_data_avail.cpp b/core/fpdfapi/fpdf_parser/cpdf_data_avail.cpp |
index a4b85a34faa2fc3905c60707e56b89ea4052dafa..15f98b26b9d60c3622bc1933f2e5542b833feb41 100644 |
--- a/core/fpdfapi/fpdf_parser/cpdf_data_avail.cpp |
+++ b/core/fpdfapi/fpdf_parser/cpdf_data_avail.cpp |
@@ -716,10 +716,10 @@ FX_BOOL CPDF_DataAvail::CheckFirstPage(IPDF_DataAvail::DownloadHints* pHints) { |
FX_BOOL CPDF_DataAvail::IsDataAvail(FX_FILESIZE offset, |
uint32_t size, |
IPDF_DataAvail::DownloadHints* pHints) { |
- if (offset > m_dwFileLen) |
+ if (offset < 0 || offset > m_dwFileLen) |
return TRUE; |
- FX_SAFE_DWORD safeSize = pdfium::base::checked_cast<uint32_t>(offset); |
+ FX_SAFE_FILESIZE safeSize = offset; |
safeSize += size; |
safeSize += 512; |
if (!safeSize.IsValid() || safeSize.ValueOrDie() > m_dwFileLen) |