From 667fa571db51cbd53e012898f11ead7172e9263c Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Fri, 15 Dec 2017 18:41:34 +0000 Subject: Validate base color space of Indexed color spaces. Change-Id: I2c1dbf4fe08396130d2fcecd70e175233316579b Reviewed-on: https://pdfium-review.googlesource.com/21430 Reviewed-by: Ryan Harrison Commit-Queue: Henrique Nakashima --- core/fpdfapi/page/cpdf_colorspace.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp index 89d5285878..ea61c1896b 100644 --- a/core/fpdfapi/page/cpdf_colorspace.cpp +++ b/core/fpdfapi/page/cpdf_colorspace.cpp @@ -1015,6 +1015,12 @@ bool CPDF_IndexedCS::v_Load(CPDF_Document* pDoc, if (!m_pBaseCS) return false; + // The base color space cannot be a Pattern or Indexed space, according to the + // PDF 1.7 spec, page 263. + if (m_pBaseCS->GetFamily() == PDFCS_INDEXED || + m_pBaseCS->GetFamily() == PDFCS_PATTERN) + return false; + m_pCountedBaseCS = pDocPageData->FindColorSpacePtr(m_pBaseCS->GetArray()); m_nBaseComponents = m_pBaseCS->CountComponents(); m_pCompMinMax = FX_Alloc2D(float, m_nBaseComponents, 2); -- cgit v1.2.3