diff --git a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java index 703a24b499..ce63d9fc11 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/Ellipse.java @@ -59,6 +59,11 @@ public class Ellipse implements GeometryRow { for (CellType cell : row.getCellArray()) { String cellName = cell.getN(); + if (cellName == null) { + throw new POIXMLException("Invalid cell '" + cellName + + "' in Ellipse row"); + } + switch (cellName) { case "X": x = XDGFCell.parseDoubleValue(cell); diff --git a/test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-4537225637134336.vsd b/test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-4537225637134336.vsd new file mode 100644 index 0000000000..fd033e801f Binary files /dev/null and b/test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-4537225637134336.vsd differ diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index 7c42429886..9ad1991a26 100644 Binary files a/test-data/spreadsheet/stress.xls and b/test-data/spreadsheet/stress.xls differ