diff options
author | Dominik Stadler <centic@apache.org> | 2024-07-16 05:26:42 +0000 |
---|---|---|
committer | Dominik Stadler <centic@apache.org> | 2024-07-16 05:26:42 +0000 |
commit | 09fbfd5be45c7597cb1517a95e18b19429c47d58 (patch) | |
tree | cd8a2fce3c07d9e4f189b38323ea3dd0653ec900 /poi-scratchpad/src | |
parent | 9456261cba0d0b0cb77e40f38fcc42c1dfd169b4 (diff) | |
download | poi-09fbfd5be45c7597cb1517a95e18b19429c47d58.tar.gz poi-09fbfd5be45c7597cb1517a95e18b19429c47d58.zip |
Bug 66425: Avoid exceptions found via poi-fuzz
Avoid a possible OutOfMemoryException with many child-records
This avoids having too many children in EscherRecords, the limit of
100_000 is arbitrarily chosen and can be adjusted if needed
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62924 and maybe others
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1919272 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi-scratchpad/src')
3 files changed, 12 insertions, 0 deletions
diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java index 5372a23bbf..e1458db0cb 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java @@ -72,6 +72,7 @@ public abstract class BaseTestPPTIterating { EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-4624961081573376.ppt", FileNotFoundException.class); EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5018229722382336.ppt", RuntimeException.class); EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6192650357112832.ppt", RuntimeException.class); + EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6614960949821440.ppt", RuntimeException.class); } public static Stream<Arguments> files() { diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java index ca4d09be24..213b05387c 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestPPTXMLDump.java @@ -36,6 +36,7 @@ public class TestPPTXMLDump extends BaseTestPPTIterating { LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6032591399288832.ppt"); LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt"); LOCAL_EXCLUDED.add("ppt_with_png_encrypted.ppt"); + LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6614960949821440.ppt"); } @Test diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java index 06a742c191..290616ce10 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java @@ -41,6 +41,11 @@ public class TestSlideShowDumper extends BaseTestPPTIterating { FAILING.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6360479850954752.ppt"); } + static final Set<String> LOCAL_EXCLUDED = new HashSet<>(); + static { + LOCAL_EXCLUDED.add("clusterfuzz-testcase-minimized-POIHSLFFuzzer-6614960949821440.ppt"); + } + @Test void testMain() throws IOException { // SlideShowDumper calls IOUtils.toByteArray(is), which would fail if a different size is defined @@ -71,6 +76,11 @@ public class TestSlideShowDumper extends BaseTestPPTIterating { throw e; } } + + // these fail everywhere else, so also should fail here + if (LOCAL_EXCLUDED.contains(pFile.getName())) { + throw new RuntimeException(); + } } @Override |