Chromium Code Reviews| Index: core/fpdfapi/fpdf_render/fpdf_render_image.cpp |
| diff --git a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp |
| index e23cab3546c57eaa5076d292ea01db2b8b3ba97a..d0da0bed5e30902a7e6e3da8091a16348e24ccdd 100644 |
| --- a/core/fpdfapi/fpdf_render/fpdf_render_image.cpp |
| +++ b/core/fpdfapi/fpdf_render/fpdf_render_image.cpp |
| @@ -762,9 +762,9 @@ FX_BOOL CPDF_ImageRenderer::DrawMaskedImage() { |
| FX_BOOL CPDF_ImageRenderer::StartDIBSource() { |
| if (!(m_Flags & RENDER_FORCE_DOWNSAMPLE) && m_pDIBSource->GetBPP() > 1) { |
| - int image_size = m_pDIBSource->GetBPP() / 8 * m_pDIBSource->GetWidth() * |
| - m_pDIBSource->GetHeight(); |
| - if (image_size > FPDF_HUGE_IMAGE_SIZE && |
| + FX_SAFE_SIZE_T image_size = m_pDIBSource->GetBPP() / 8 * m_pDIBSource->GetWidth() * |
|
Oliver Chang
2016/09/12 16:21:33
This is incorrect, as any integer errors would've
|
| + m_pDIBSource->GetHeight(); |
| + if (image_size.ValueOrDie() > FPDF_HUGE_IMAGE_SIZE && |
|
Oliver Chang
2016/09/12 16:21:33
Usually we don't want to crash if image_size is no
|
| !(m_Flags & RENDER_FORCE_HALFTONE)) { |
| m_Flags |= RENDER_FORCE_DOWNSAMPLE; |
| } |