From 15dd62d65957dc87b0aa2efab2f4561c17707607 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Wed, 6 Dec 2023 19:49:52 +0000 Subject: 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 --- poi/src/main/java/org/apache/poi/extractor/ExtractorFactory.java | 4 +++- poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java | 1 + poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) (limited to 'poi') 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 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> 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; } -- cgit v1.2.3