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]

Reply via email to