Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1081)

Unified Diff: core/fpdfapi/parser/cpdf_data_avail.cpp

Issue 2430743003: in the attempt to fix 627393, changed IFX_FileRead's readBlock to return the length it reads
Patch Set: delete the include folder Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: core/fpdfapi/parser/cpdf_data_avail.cpp
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp
index 3fe4b03da62012ae33d8cbf50944708e5572224f..4df1a140e7a683254b9b93af8dc1eafedbe3796e 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -957,7 +957,9 @@ bool CPDF_DataAvail::GetNextChar(uint8_t& ch) {
if ((FX_FILESIZE)(read_pos + read_size) > m_dwFileLen)
read_pos = m_dwFileLen - read_size;
- if (!m_pFileRead->ReadBlock(m_bufferData, read_pos, read_size))
+ if (m_pFileRead->ReadBlock(m_bufferData, read_pos, read_size) !=
+ read_size &&
+ !m_pFileRead->IsEOF())
return false;
m_bufferOffset = read_pos;
@@ -1062,7 +1064,8 @@ bool CPDF_DataAvail::CheckTrailer(DownloadHints* pHints) {
int32_t iTrailerSize =
(int32_t)(m_Pos + 512 > m_dwFileLen ? m_dwFileLen - m_Pos : 512);
if (m_pFileAvail->IsDataAvail(m_Pos, iTrailerSize)) {
- int32_t iSize = (int32_t)(m_Pos + iTrailerSize - m_dwTrailerOffset);
+ uint32_t iSize = pdfium::base::checked_cast<uint32_t>(m_Pos + iTrailerSize -
+ m_dwTrailerOffset);
CFX_BinaryBuf buf(iSize);
uint8_t* pBuf = buf.GetBuffer();
if (!pBuf) {
@@ -1070,7 +1073,8 @@ bool CPDF_DataAvail::CheckTrailer(DownloadHints* pHints) {
return false;
}
- if (!m_pFileRead->ReadBlock(pBuf, m_dwTrailerOffset, iSize))
+ if (m_pFileRead->ReadBlock(pBuf, m_dwTrailerOffset, iSize) != iSize &&
+ !m_pFileRead->IsEOF())
return false;
ScopedFileStream file(FX_CreateMemoryStream(pBuf, (size_t)iSize, false));
Tom Sepez 2016/11/14 20:27:40 same issue here with reads < isize.

Powered by Google App Engine
This is Rietveld 408576698