You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2022/06/11 11:32:31 UTC

svn commit: r1901824 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java

Author: lehmi
Date: Sat Jun 11 11:32:31 2022
New Revision: 1901824

URL: http://svn.apache.org/viewvc?rev=1901824&view=rev
Log:
PDFBOX-5456: check values for object key before creating an instance of COSObjectKey to avoid an IllegalArgumentException

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java?rev=1901824&r1=1901823&r2=1901824&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java Sat Jun 11 11:32:31 2022
@@ -653,8 +653,18 @@ public abstract class BaseParser
                     if (po.size() > 0 && po.get(po.size() - 1) instanceof COSInteger)
                     {
                         COSInteger number = (COSInteger)po.remove( po.size() -1 );
-                        COSObjectKey key = new COSObjectKey(number.longValue(), genNumber.intValue());
-                        pbo = getObjectFromPool(key);
+                        if (number.longValue() >= 0 && genNumber.intValue() >= 0)
+                        {
+                            COSObjectKey key = new COSObjectKey(number.longValue(),
+                                    genNumber.intValue());
+                            pbo = getObjectFromPool(key);
+                        }
+                        else
+                        {
+                            LOG.warn("Invalid value(s) for an object key " + number.longValue()
+                                    + " " + genNumber.intValue());
+                            pbo = null;
+                        }
                     }
                     else
                     {