Author: centic Date: Mon Jan 20 18:40:27 2025 New Revision: 1923276 URL: http://svn.apache.org/viewvc?rev=1923276&view=rev Log: Bug 66425: Avoid exceptions found via poi-fuzz
Prevent NullPointerException Fixes https://issues.oss-fuzz.com/issues/389724915 Added: poi/trunk/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-5611274456596480.pptx Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java poi/trunk/test-data/spreadsheet/stress.xls Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java?rev=1923276&r1=1923275&r2=1923276&view=diff ============================================================================== --- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java (original) +++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java Mon Jan 20 18:40:27 2025 @@ -84,9 +84,14 @@ public class XSLFGraphicFrame extends XS } double x = Units.toPoints(POIXMLUnits.parseLength(off.xgetX())); double y = Units.toPoints(POIXMLUnits.parseLength(off.xgetY())); + CTPositiveSize2D ext = xfrm.getExt(); + if (ext == null) { + throw new IllegalArgumentException("Could not retrieve Ext from the XML object"); + } double cx = Units.toPoints(ext.getCx()); double cy = Units.toPoints(ext.getCy()); + return new Rectangle2D.Double(x, y, cx, cy); } Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java?rev=1923276&r1=1923275&r2=1923276&view=diff ============================================================================== --- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java (original) +++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFShape.java Mon Jan 20 18:40:27 2025 @@ -448,6 +448,10 @@ public abstract class XSLFShape implemen // values 1-999 refer to the index of a fill style within the fillStyleLst element // values 1001 and above refer to the index of a background fill style within the bgFillStyleLst element. long idx = fillRef.getIdx(); + + if (theme == null || theme.getXmlObject() == null || theme.getXmlObject().getThemeElements() == null) { + throw new IllegalArgumentException("Could not retrieve theme elements from shape"); + } CTStyleMatrix matrix = theme.getXmlObject().getThemeElements().getFmtScheme(); final XmlObject styleLst; long childIdx; Added: poi/trunk/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-5611274456596480.pptx URL: http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-5611274456596480.pptx?rev=1923276&view=auto ============================================================================== Binary files poi/trunk/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-5611274456596480.pptx (added) and poi/trunk/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-5611274456596480.pptx Mon Jan 20 18:40:27 2025 differ Modified: poi/trunk/test-data/spreadsheet/stress.xls URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/stress.xls?rev=1923276&r1=1923275&r2=1923276&view=diff ============================================================================== Binary files - no diff available. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
