You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2017/03/21 17:39:11 UTC

svn commit: r1788014 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java

Author: tilman
Date: Tue Mar 21 17:39:11 2017
New Revision: 1788014

URL: http://svn.apache.org/viewvc?rev=1788014&view=rev
Log:
PDFBOX-3728: avoid NPE

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java?rev=1788014&r1=1788013&r2=1788014&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java Tue Mar 21 17:39:11 2017
@@ -80,10 +80,19 @@ public final class PDICCBased extends PD
      * Creates a new ICC color space using the PDF array.
      *
      * @param iccArray the ICC stream object
-     * @throws java.io.IOException if there is an error reading the ICC profile.
+     * @throws IOException if there is an error reading the ICC profile or if the parameter
+     * is invalid.
      */
     public PDICCBased(COSArray iccArray) throws IOException
     {
+        if (iccArray.size() < 2)
+        {
+            throw new IOException("ICCBased colorspace array must have two elements");
+        }
+        if (!(iccArray.getObject(1) instanceof COSStream))
+        {
+            throw new IOException("ICCBased colorspace array must have a stream as second element");
+        }
         array = iccArray;
         stream = new PDStream((COSStream) iccArray.getObject(1));
         loadICCProfile();