Index: core/fpdfapi/edit/fpdf_edit_create.cpp |
diff --git a/core/fpdfapi/edit/fpdf_edit_create.cpp b/core/fpdfapi/edit/fpdf_edit_create.cpp |
index a578a0a1141c81f80a64634c54c098b7ae428fed..7689ba7cb8381a0b86dfac1b4e22b0af68c318a0 100644 |
--- a/core/fpdfapi/edit/fpdf_edit_create.cpp |
+++ b/core/fpdfapi/edit/fpdf_edit_create.cpp |
@@ -1494,7 +1494,9 @@ int32_t CPDF_Creator::WriteDoc_Stage1(IFX_Pause* pPause) { |
uint32_t src_size = (uint32_t)(uintptr_t)m_Pos; |
while (src_size) { |
uint32_t block_size = src_size > 4096 ? 4096 : src_size; |
- if (!pSrcFile->ReadBlock(buffer, m_Offset - src_size, block_size)) { |
+ if (pSrcFile->ReadBlock(buffer, m_Offset - src_size, block_size) != |
+ block_size && |
+ !pSrcFile->IsEOF()) { |
return -1; |
} |
if (m_File.AppendBlock(buffer, block_size) < 0) { |
Tom Sepez
2016/11/14 20:27:40
we could have a short read here, yet we appended t
|