You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2023/12/06 19:49:52 UTC
svn commit: r1914404 - in /poi/trunk: poi-integration/src/test/java/org/apache/poi/stress/ poi/src/main/java/org/apache/poi/extractor/ poi/src/test/java/org/apache/poi/hssf/dev/ test-data/spreadsheet/
Author: centic
Date: Wed Dec 6 19:49:52 2023
New Revision: 1914404
URL: http://svn.apache.org/viewvc?rev=1914404&view=rev
Log:
Bug 66425: Avoid exceptions found via poi-fuzz
Avoid a ClassCastException and trigger some more
code in integration-testing.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=63358
Added:
poi/trunk/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls
Modified:
poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/AbstractFileHandler.java
poi/trunk/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java
poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java
poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java
poi/trunk/test-data/spreadsheet/stress.xls
Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/AbstractFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/AbstractFileHandler.java?rev=1914404&r1=1914403&r2=1914404&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/AbstractFileHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/AbstractFileHandler.java Wed Dec 6 19:49:52 2023
@@ -109,13 +109,38 @@ public abstract class AbstractFileHandle
assertEquals(modified, file.lastModified(), "File should not be modified by extractor");
if (extractor instanceof POIOLE2TextExtractor) {
- try (HPSFPropertiesExtractor hpsfExtractor = new HPSFPropertiesExtractor((POIOLE2TextExtractor) extractor)) {
+ POIOLE2TextExtractor ole2Extractor = (POIOLE2TextExtractor) extractor;
+ ole2Extractor.getRoot();
+ if (!(ole2Extractor instanceof EventBasedExcelExtractor)) {
+ ole2Extractor.getSummaryInformation();
+ ole2Extractor.getDocSummaryInformation();
+ }
+
+ try (HPSFPropertiesExtractor hpsfExtractor = new HPSFPropertiesExtractor(ole2Extractor)) {
assertNotNull(hpsfExtractor.getDocumentSummaryInformationText());
assertNotNull(hpsfExtractor.getSummaryInformationText());
String text = hpsfExtractor.getText();
//System.out.println(text);
assertNotNull(text);
}
+
+ if (ole2Extractor.getRoot() != null && !Boolean.getBoolean("scratchpad.ignore")) {
+ POITextExtractor[] embedded = ExtractorFactory.getEmbeddedDocsTextExtractors(ole2Extractor);
+ try {
+ for (POITextExtractor poiTextExtractor : embedded) {
+ poiTextExtractor.getText();
+ poiTextExtractor.getDocument();
+ poiTextExtractor.getFilesystem();
+ POITextExtractor metaData = poiTextExtractor.getMetadataTextExtractor();
+ metaData.getFilesystem();
+ metaData.getText();
+ }
+ } finally {
+ for (POITextExtractor embeddedExtractor : embedded) {
+ embeddedExtractor.close();
+ }
+ }
+ }
}
// test again with including formulas and cell-comments as this caused some bugs
@@ -166,6 +191,8 @@ public abstract class AbstractFileHandle
assertNotNull(streamExtractor);
assertNotNull(streamExtractor.getText());
+
+ assertNotNull(streamExtractor.getMetadataTextExtractor());
}
}
}
Modified: poi/trunk/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java?rev=1914404&r1=1914403&r2=1914404&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java Wed Dec 6 19:49:52 2023
@@ -373,7 +373,9 @@ public final class ExtractorFactory {
ArrayList<POITextExtractor> textExtractors = new ArrayList<>();
for (Entry dir : dirs) {
- textExtractors.add(createExtractor((DirectoryNode) dir));
+ if (dir instanceof DirectoryNode) {
+ textExtractors.add(createExtractor((DirectoryNode) dir));
+ }
}
for (InputStream stream : nonPOIFS) {
try {
Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java?rev=1914404&r1=1914403&r2=1914404&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java Wed Dec 6 19:49:52 2023
@@ -44,6 +44,7 @@ class TestBiffViewer extends BaseTestIte
excludes.put("protected_66115.xls", RecordFormatException.class);
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls", IllegalStateException.class);
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5889658057523200.xls", IndexOutOfBoundsException.class);
+ excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls", IndexOutOfBoundsException.class);
return excludes;
}
Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java?rev=1914404&r1=1914403&r2=1914404&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java Wed Dec 6 19:49:52 2023
@@ -47,6 +47,7 @@ class TestRecordLister extends BaseTestI
Map<String, Class<? extends Throwable>> excludes = super.getExcludes();
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5786329142919168.xls", RecordFormatException.class);
excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5889658057523200.xls", IndexOutOfBoundsException.class);
+ excludes.put("clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls", RecordFormatException.class);
return excludes;
}
Added: poi/trunk/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls?rev=1914404&view=auto
==============================================================================
Binary files poi/trunk/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls (added) and poi/trunk/test-data/spreadsheet/clusterfuzz-testcase-minimized-POIHSSFFuzzer-5175219985448960.xls Wed Dec 6 19:49:52 2023 differ
Modified: poi/trunk/test-data/spreadsheet/stress.xls
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/stress.xls?rev=1914404&r1=1914403&r2=1914404&view=diff
==============================================================================
Binary files - no diff available.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org