From 8d71c1f2ffc616bae6ba213af856f019027956a5 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 30 Jul 2025 18:54:05 +0100 Subject: [PATCH] add poifs test --- .../poi/poifs/filesystem/TestPOIFSStream.java | 10 ++++++++++ test-data/poifs/deep-data.bin | Bin 0 -> 774656 bytes 2 files changed, 10 insertions(+) create mode 100644 test-data/poifs/deep-data.bin diff --git a/poi/src/test/java/org/apache/poi/poifs/filesystem/TestPOIFSStream.java b/poi/src/test/java/org/apache/poi/poifs/filesystem/TestPOIFSStream.java index dcbf5145a0..9dd6043ae1 100644 --- a/poi/src/test/java/org/apache/poi/poifs/filesystem/TestPOIFSStream.java +++ b/poi/src/test/java/org/apache/poi/poifs/filesystem/TestPOIFSStream.java @@ -2734,6 +2734,15 @@ final class TestPOIFSStream { } } + @Test + void testDeepData() throws IOException { + try (InputStream stream = POIDataSamples.getPOIFSInstance().openResourceAsStream("deep-data.bin")) { + IOException ex = assertThrows(IOException.class, + () -> new POIFSFileSystem(stream)); + assertEquals("Property tree too deep, likely a corrupt file", ex.getMessage()); + } + } + @Disabled("Takes a long time to run") @Test void performance() throws Exception { @@ -2781,4 +2790,5 @@ final class TestPOIFSStream { } } } + } diff --git a/test-data/poifs/deep-data.bin b/test-data/poifs/deep-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..a06aae869444621804fa3c5b5f4f810eb7f1aa1a GIT binary patch literal 774656 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 ZBOJ#Ge2h=