Author: lehmi
Date: Sun Oct 29 15:33:35 2023
New Revision: 1913426

URL: http://svn.apache.org/viewvc?rev=1913426&view=rev
Log:
PDFBOX-5707: avoid NPE when collecting all indirect objects keys of a 
COSArray/COSDictionary

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java?rev=1913426&r1=1913425&r2=1913426&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java Sun 
Oct 29 15:33:35 2023
@@ -79,8 +79,13 @@ public class COSArray extends COSBase im
      */
     public void add( COSObjectable object )
     {
-        objects.add( object.getCOSObject() );
-        getUpdateState().update(object.getCOSObject());
+        COSBase base = null;
+        if (object != null)
+        {
+            base = object.getCOSObject();
+        }
+        objects.add(base);
+        getUpdateState().update(base);
     }
 
     /**
@@ -764,6 +769,10 @@ public class COSArray extends COSBase im
 
         for (COSBase cosBase : objects)
         {
+            if (cosBase == null)
+            {
+                continue;
+            }
             COSObjectKey cosBaseKey = cosBase.getKey();
             if (cosBaseKey != null && indirectObjects.contains(cosBaseKey))
             {

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java?rev=1913426&r1=1913425&r2=1913426&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java 
Sun Oct 29 15:33:35 2023
@@ -1452,7 +1452,7 @@ public class COSDictionary extends COSBa
         for (Entry<COSName, COSBase> entry : items.entrySet())
         {
             COSBase cosBase = entry.getValue();
-            COSObjectKey cosBaseKey = cosBase.getKey();
+            COSObjectKey cosBaseKey = cosBase != null ? cosBase.getKey() : 
null;
             // avoid endless recursions
             if (COSName.PARENT.equals(entry.getKey())
                     || (cosBaseKey != null && 
indirectObjects.contains(cosBaseKey)))


Reply via email to