diff --git a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFDiagram.java b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFDiagram.java index 6c89bc8b7f..895745711c 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFDiagram.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFDiagram.java @@ -181,6 +181,10 @@ public class XSLFDiagram extends XSLFGraphicFrame { textShapeCT.setNvSpPr((CTShapeNonVisual) nonVisualCt.copy()); textShapeCT.getNvSpPr().getCNvSpPr().setTxBox(true); + if (msShapeCt.getSpPr() == null || msShapeCt.getSpPr().getXfrm() == null || msShapeCt.getTxXfrm() == null) { + throw new IllegalStateException("Invalid content in diagram, cannot extract text"); + } + textShapeProps.setXfrm(msShapeCt.getTxXfrm()); int shapeRotation = msShapeCt.getSpPr().getXfrm().getRot(); int textRotation = msShapeCt.getTxXfrm().getRot(); diff --git a/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-6071540680032256.pptx b/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-6071540680032256.pptx new file mode 100644 index 0000000000..1d8d49a2b9 Binary files /dev/null and b/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-6071540680032256.pptx differ diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index e34a6c478c..7eca50c81b 100644 Binary files a/test-data/spreadsheet/stress.xls and b/test-data/spreadsheet/stress.xls differ