aboutsummaryrefslogtreecommitdiffstats
path: root/poi
diff options
context:
space:
mode:
authorDominik Stadler <centic@apache.org>2023-12-06 19:49:52 +0000
committerDominik Stadler <centic@apache.org>2023-12-06 19:49:52 +0000
commit15dd62d65957dc87b0aa2efab2f4561c17707607 (patch)
tree1edb628c09eb56f4ed4f2477423a8dfda7e9cc4f /poi
parentc7329fbd38d1c22749448150ca180537ecbd8262 (diff)
downloadpoi-15dd62d65957dc87b0aa2efab2f4561c17707607.tar.gz
poi-15dd62d65957dc87b0aa2efab2f4561c17707607.zip
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 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1914404 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi')
-rw-r--r--poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java4
-rw-r--r--poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java1
-rw-r--r--poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java1
3 files changed, 5 insertions, 1 deletions
diff --git a/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java b/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java
index 21e61e572a..f784842274 100644
--- a/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java
+++ b/poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java
@@ -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 {
diff --git a/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java b/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java
index 218ecb93f6..4655517e08 100644
--- a/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java
+++ b/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java
@@ -44,6 +44,7 @@ class TestBiffViewer extends BaseTestIteratingXLS {
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;
}
diff --git a/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java b/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java
index 7f2f85dcbb..c04d994a43 100644
--- a/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java
+++ b/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java
@@ -47,6 +47,7 @@ class TestRecordLister extends BaseTestIteratingXLS {
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;
}