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
{