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 2020/09/27 08:04:37 UTC

svn commit: r1882055 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java

Author: tilman
Date: Sun Sep 27 08:04:37 2020
New Revision: 1882055

URL: http://svn.apache.org/viewvc?rev=1882055&view=rev
Log:
PDFBOX-4969: avoid IndexOutOfBoundsException

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java?rev=1882055&r1=1882054&r2=1882055&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java Sun Sep 27 08:04:37 2020
@@ -163,7 +163,6 @@ public class PDNumberTreeNode implements
         return retval;
     }
 
-
     /**
      * This will return a map of numbers.  The key will be a java.lang.Integer, the value will
      * depend on where this class is being used.
@@ -180,7 +179,11 @@ public class PDNumberTreeNode implements
         {
             COSArray numbersArray = (COSArray) numBase;
             indices = new HashMap<Integer, COSObjectable>();
-            for (int i = 0; i < numbersArray.size(); i += 2)
+            if (numbersArray.size() % 2 != 0)
+            {
+                LOG.warn("Numbers array has odd size: " + numbersArray.size());
+            }
+            for (int i = 0; i + 1 < numbersArray.size(); i += 2)
             {
                 COSBase base = numbersArray.getObject(i);
                 if (!(base instanceof COSInteger))