Check the number of component in ICCBased colorspace
authorBo Xu <bo_xu@foxitsoftware.com>
Fri, 22 Aug 2014 17:30:10 +0000 (10:30 -0700)
committerBo Xu <bo_xu@foxitsoftware.com>
Fri, 22 Aug 2014 17:30:10 +0000 (10:30 -0700)
From PDF reference 8.6.5.5, this could only be 1, 3 or 4.

BUG=387968
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/464083003

core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp

index c0a5602..f1640ad 100644 (file)
@@ -585,7 +585,7 @@ FX_BOOL CPDF_ICCBasedCS::v_Load(CPDF_Document* pDoc, CPDF_Array* pArray)
     }
     CPDF_Dictionary* pDict = pStream->GetDict();
     m_nComponents = pDict ? pDict->GetInteger(FX_BSTRC("N")) : 0;
-    if (m_nComponents <= 0 || m_nComponents > (1 << 16)) {
+    if (m_nComponents != 1 && m_nComponents != 3 && m_nComponents != 4) {
         return FALSE;
     }
     CPDF_Array* pRanges = pDict->GetArray(FX_BSTRC("Range"));