This is an automated email from the ASF dual-hosted git repository.

centic pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/poi.git

commit 9d9865c9b8a8fc831728141c9b7a5b4dd3dc30c2
Author: Dominik Stadler <[email protected]>
AuthorDate: Sat Feb 21 13:44:59 2026 +0100

    Avoid NPE when handling diagrams in pptx
    
    Fixes https://issues.oss-fuzz.com/issues/484589690
---
 .../org/apache/poi/xslf/usermodel/XSLFDiagram.java  |   8 ++++++--
 ...se-minimized-POIXSLFFuzzer-6435650376957952.pptx | Bin 0 -> 69779 bytes
 test-data/spreadsheet/stress.xls                    | Bin 80384 -> 80896 bytes
 3 files changed, 6 insertions(+), 2 deletions(-)

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 895745711c..5b456538c5 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
@@ -148,8 +148,12 @@ public class XSLFDiagram extends XSLFGraphicFrame {
         shapeCt.setSpPr(msShapeCt.getSpPr());
 
         CTShapeNonVisual nonVisualCt = shapeCt.addNewNvSpPr();
-        nonVisualCt.setCNvPr(msShapeCt.getNvSpPr().getCNvPr());
-        nonVisualCt.setCNvSpPr(msShapeCt.getNvSpPr().getCNvSpPr());
+        com.microsoft.schemas.office.drawing.x2008.diagram.CTShapeNonVisual 
nvSpPr = msShapeCt.getNvSpPr();
+        if (nvSpPr == null) {
+            nvSpPr = msShapeCt.addNewNvSpPr();
+        }
+        nonVisualCt.setCNvPr(nvSpPr.getCNvPr());
+        nonVisualCt.setCNvSpPr(nvSpPr.getCNvSpPr());
         
nonVisualCt.setNvPr(CTApplicationNonVisualDrawingProps.Factory.newInstance());
         shapeCt.setNvSpPr(nonVisualCt);
 
diff --git 
a/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-6435650376957952.pptx
 
b/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-6435650376957952.pptx
new file mode 100644
index 0000000000..8da1ed93f9
Binary files /dev/null and 
b/test-data/slideshow/clusterfuzz-testcase-minimized-POIXSLFFuzzer-6435650376957952.pptx
 differ
diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls
index aec4cdf62e..db5b3318d1 100644
Binary files a/test-data/spreadsheet/stress.xls and 
b/test-data/spreadsheet/stress.xls differ


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to