summaryrefslogtreecommitdiff
path: root/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp')
-rw-r--r--core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp b/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
index 951d38359f..44ac29f9e1 100644
--- a/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
+++ b/core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
@@ -570,15 +570,16 @@ int CPDF_DIBSource::CreateDecoder() {
bpc, bTransform)) {
if (m_nComponents != static_cast<uint32_t>(comps)) {
FX_Free(m_pCompData);
+ m_pCompData = nullptr;
m_nComponents = static_cast<uint32_t>(comps);
- if (m_Family == PDFCS_LAB && m_nComponents != 3) {
- m_pCompData = nullptr;
+ if (m_pColorSpace &&
+ m_pColorSpace->CountComponents() != m_nComponents)
+ return 0;
+ if (m_Family == PDFCS_LAB && m_nComponents != 3)
return 0;
- }
m_pCompData = GetDecodeAndMaskArray(m_bDefaultDecode, m_bColorKey);
- if (!m_pCompData) {
+ if (!m_pCompData)
return 0;
- }
}
m_bpc = bpc;
m_pDecoder.reset(CPDF_ModuleMgr::Get()->GetJpegModule()->CreateDecoder(