summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Chang <ochang@chromium.org>2016-04-18 12:45:52 -0700
committerOliver Chang <ochang@chromium.org>2016-04-18 12:45:52 -0700
commita57e3e13c1c0ea8e47746f5622f299bd3150eb48 (patch)
treec07c10b37facfd3bf8600d213f5a579e6603019c
parent0b1e15bc24261aff413578571dd04cd18f502f31 (diff)
downloadpdfium-a57e3e13c1c0ea8e47746f5622f299bd3150eb48.tar.xz
Merge to M51: Prevent an OOB access in CPDF_DIBSource::TranslateScanline24bpp
if |m_Family| was RGB, the code assumed there were 3 components, which may not be the case. BUG=chromium:602046 TBR=tsepez@chromium.org Original Review URL: https://codereview.chromium.org/1877033003 (cherry picked from commit 6a3521f049b35c801f124f1573718021a785ff6b) Review URL: https://codereview.chromium.org/1895033004 .
-rw-r--r--core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp b/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
index 144de779e9..97f625f29f 100644
--- a/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
+++ b/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
@@ -918,6 +918,9 @@ void CPDF_DIBSource::TranslateScanline24bpp(uint8_t* dest_scan,
unsigned int max_data = (1 << m_bpc) - 1;
if (m_bDefaultDecode) {
if (m_Family == PDFCS_DEVICERGB || m_Family == PDFCS_CALRGB) {
+ if (m_nComponents != 3)
+ return;
+
const uint8_t* src_pos = src_scan;
switch (m_bpc) {
case 16: