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/01/18 11:14:16 UTC

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

Author: lehmi
Date: Tue Jan 18 11:14:15 2022
New Revision: 1897172

URL: http://svn.apache.org/viewvc?rev=1897172&view=rev
Log:
PDFBOX-5339: stop reading dictionaries containing empty COSName entries, most likely they are broken

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=1897172&r1=1897171&r2=1897172&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 Tue Jan 18 11:14:15 2022
@@ -289,6 +289,11 @@ public abstract class BaseParser
     private boolean parseCOSDictionaryNameValuePair(COSDictionary obj) throws IOException
     {
         COSName key = parseCOSName();
+        if (key == null || key.getName().isEmpty())
+        {
+            LOG.error("Empty COSName at offset " + source.getPosition());
+            return false;
+        }
         COSBase value = parseCOSDictionaryValue();
         skipSpaces();
         if (value == null)