Validate base color space of Indexed color spaces.

Change-Id: I2c1dbf4fe08396130d2fcecd70e175233316579b
Reviewed-on: https://pdfium-review.googlesource.com/21430
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp
index 89d5285..ea61c18 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -1015,6 +1015,12 @@
   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);