Author: centic
Date: Fri Aug 11 14:46:04 2023
New Revision: 1911603

URL: http://svn.apache.org/viewvc?rev=1911603&view=rev
Log:
Bug 66425: Avoid a NullPointerException found via oss-fuzz

We try to avoid throwing NullPointerException, but it was possible
to trigger one here with a specially crafted input-file

Should fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=61372

Added:
    
poi/trunk/test-data/diagram/clusterfuzz-testcase-minimized-POIHDGFFuzzer-4913778037489664.vsd
Modified:
    
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/extractor/VisioTextExtractor.java
    poi/trunk/test-data/spreadsheet/stress.xls

Modified: 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/extractor/VisioTextExtractor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/extractor/VisioTextExtractor.java?rev=1911603&r1=1911602&r2=1911603&view=diff
==============================================================================
--- 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/extractor/VisioTextExtractor.java
 (original)
+++ 
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/extractor/VisioTextExtractor.java
 Fri Aug 11 14:46:04 2023
@@ -38,7 +38,7 @@ import org.apache.poi.poifs.filesystem.P
  *  can return the text for you (example: for use with Lucene).
  */
 public final class VisioTextExtractor implements POIOLE2TextExtractor {
-    private HDGFDiagram hdgf;
+    private final HDGFDiagram hdgf;
     private boolean doCloseFilesystem = true;
 
     public VisioTextExtractor(HDGFDiagram hdgf) {
@@ -72,8 +72,10 @@ public final class VisioTextExtractor im
     private void findText(Stream stream, List<String> text) {
         if(stream instanceof PointerContainingStream) {
             PointerContainingStream ps = (PointerContainingStream)stream;
-            for(final Stream substream : ps.getPointedToStreams()) {
-                findText(substream, text);
+            if (ps.getPointedToStreams() != null) {
+                for (final Stream substream : ps.getPointedToStreams()) {
+                    findText(substream, text);
+                }
             }
         }
         if(stream instanceof ChunkStream) {

Added: 
poi/trunk/test-data/diagram/clusterfuzz-testcase-minimized-POIHDGFFuzzer-4913778037489664.vsd
URL: 
http://svn.apache.org/viewvc/poi/trunk/test-data/diagram/clusterfuzz-testcase-minimized-POIHDGFFuzzer-4913778037489664.vsd?rev=1911603&view=auto
==============================================================================
Binary files 
poi/trunk/test-data/diagram/clusterfuzz-testcase-minimized-POIHDGFFuzzer-4913778037489664.vsd
 (added) and 
poi/trunk/test-data/diagram/clusterfuzz-testcase-minimized-POIHDGFFuzzer-4913778037489664.vsd
 Fri Aug 11 14:46:04 2023 differ

Modified: poi/trunk/test-data/spreadsheet/stress.xls
URL: 
http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/stress.xls?rev=1911603&r1=1911602&r2=1911603&view=diff
==============================================================================
Binary files - no diff available.



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to