Author: lehmi
Date: Sun Oct 29 15:30:24 2023
New Revision: 1913425

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

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

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java?rev=1913425&r1=1913424&r2=1913425&view=diff
==============================================================================
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java 
(original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java 
Sun Oct 29 15:30:24 2023
@@ -22,7 +22,6 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
-import java.util.stream.StreamSupport;
 
 import org.apache.pdfbox.pdmodel.common.COSObjectable;
 
@@ -80,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);
     }
 
     /**
@@ -765,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/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java?rev=1913425&r1=1913424&r2=1913425&view=diff
==============================================================================
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDictionary.java
 Sun Oct 29 15:30:24 2023
@@ -1453,7 +1453,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