]> source.dussan.org Git - poi.git/commitdiff
Bug 66425: Avoid a NullPointerException found via oss-fuzz
authorDominik Stadler <centic@apache.org>
Wed, 6 Sep 2023 09:48:21 +0000 (09:48 +0000)
committerDominik Stadler <centic@apache.org>
Wed, 6 Sep 2023 09:48:21 +0000 (09:48 +0000)
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=62074

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912125 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java
poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
test-data/spreadsheet/clusterfuzz-testcase-minimized-POIXSSFFuzzer-6123461607817216.xlsx [new file with mode: 0644]
test-data/spreadsheet/stress.xls

index 55fe271c79501dd278bffa2f57cdee8b5f2173c6..8bd52bb9e863a2b8ec0c5f3813f3e4ed553b472c 100644 (file)
@@ -380,6 +380,10 @@ public class XSSFReader {
          */
         @Override
         public InputStream next() {
+            if (!sheetIterator.hasNext()) {
+                throw new IllegalStateException("Cannot get next from iterator");
+            }
+
             xssfSheetRef = sheetIterator.next();
 
             String sheetId = xssfSheetRef.getId();
index c48c338e6defdd8cc8780739ebc84fae089f2d83..e1005ee1a4ad44416adb5a24c8f6dac0c284fa71 100644 (file)
@@ -831,7 +831,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Date1904Su
     private XSSFName createAndStoreName(CTDefinedName ctName) {
         XSSFName name = new XSSFName(ctName, this);
         namedRanges.add(name);
-        namedRangesByName.put(ctName.getName().toLowerCase(Locale.ENGLISH), name);
+        namedRangesByName.put(ctName.getName() == null ? null : ctName.getName().toLowerCase(Locale.ENGLISH), name);
         return name;
     }
 
diff --git a/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIXSSFFuzzer-6123461607817216.xlsx b/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIXSSFFuzzer-6123461607817216.xlsx
new file mode 100644 (file)
index 0000000..927acf2
Binary files /dev/null and b/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIXSSFFuzzer-6123461607817216.xlsx differ
index 5af5cc74d01a2758b359c3c191c20dd27d781a8e..fd160eeb72089b9d6b6383aae54de8902d5d6607 100644 (file)
Binary files a/test-data/spreadsheet/stress.xls and b/test-data/spreadsheet/stress.xls differ