diff options
Diffstat (limited to 'core/fpdfapi/page/cpdf_colorspace.cpp')
-rw-r--r-- | core/fpdfapi/page/cpdf_colorspace.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp index c09562ce52..89d5285878 100644 --- a/core/fpdfapi/page/cpdf_colorspace.cpp +++ b/core/fpdfapi/page/cpdf_colorspace.cpp @@ -947,6 +947,9 @@ bool CPDF_ICCBasedCS::FindAlternateProfile(CPDF_Document* pDoc, if (!pAlterCS) return false; + if (pAlterCS->GetFamily() == PDFCS_PATTERN) + return false; + if (pAlterCS->CountComponents() != m_nComponents) return false; @@ -1102,6 +1105,9 @@ bool CPDF_SeparationCS::v_Load(CPDF_Document* pDoc, if (!m_pAltCS) return false; + if (m_pAltCS->IsSpecial()) + return false; + CPDF_Object* pFuncObj = pArray->GetDirectObjectAt(3); if (pFuncObj && !pFuncObj->IsName()) m_pFunc = CPDF_Function::Load(pFuncObj); @@ -1181,6 +1187,9 @@ bool CPDF_DeviceNCS::v_Load(CPDF_Document* pDoc, if (!m_pAltCS || !m_pFunc) return false; + if (m_pAltCS->IsSpecial()) + return false; + return m_pFunc->CountOutputs() >= m_pAltCS->CountComponents(); } |