We try to avoid throwing NullPointerException, ClassCastExceptions and StackOverflowException, but it was possible to trigger them Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62548 and https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62564 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912464 13f79535-47bb-0310-9956-ffa450edef68tags/REL_5_2_4
@@ -214,8 +214,12 @@ public class XSLFDiagram extends XSLFGraphicFrame { | |||
CTGroupShapeProperties groupShapePropsCt = groupShapeCt.addNewGrpSpPr(); | |||
CTGroupShapeNonVisual groupShapeNonVisualCt = groupShapeCt.addNewNvGrpSpPr(); | |||
groupShapeNonVisualCt.setCNvPr(msGroupShapeCt.getNvGrpSpPr().getCNvPr()); | |||
groupShapeNonVisualCt.setCNvGrpSpPr(msGroupShapeCt.getNvGrpSpPr().getCNvGrpSpPr()); | |||
final com.microsoft.schemas.office.drawing.x2008.diagram.CTGroupShapeNonVisual nvGrpSpPr = | |||
msGroupShapeCt.getNvGrpSpPr(); | |||
if (nvGrpSpPr != null) { | |||
groupShapeNonVisualCt.setCNvPr(nvGrpSpPr.getCNvPr()); | |||
groupShapeNonVisualCt.setCNvGrpSpPr(nvGrpSpPr.getCNvGrpSpPr()); | |||
} | |||
groupShapeNonVisualCt.setNvPr(CTApplicationNonVisualDrawingProps.Factory.newInstance()); | |||
for (CTShape msShapeCt : msGroupShapeCt.getSpList()) { |
@@ -67,6 +67,7 @@ public abstract class BaseTestPPTIterating { | |||
EXCLUDED.put("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt", FileNotFoundException.class); | |||
EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5962760801091584.ppt", RuntimeException.class); | |||
EXCLUDED.put("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt", FileNotFoundException.class); | |||
EXCLUDED.put("clusterfuzz-testcase-minimized-POIFuzzer-6411649193738240.ppt", FileNotFoundException.class); | |||
} | |||
public static Stream<Arguments> files() { |
@@ -66,7 +66,8 @@ public class TestPPTXMLDump extends BaseTestPPTIterating { | |||
// work around two files which works here but not in other tests | |||
if (pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5429732352851968.ppt") || | |||
pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-5681320547975168.ppt") || | |||
pFile.getName().equals("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt")) { | |||
pFile.getName().equals("clusterfuzz-testcase-minimized-POIHSLFFuzzer-5231088823566336.ppt") || | |||
pFile.getName().equals("clusterfuzz-testcase-minimized-POIFuzzer-6411649193738240.ppt")) { | |||
throw new FileNotFoundException(); | |||
} | |||
} |
@@ -60,7 +60,7 @@ public class KeyData { | |||
blockSize = getIntAttr(keyData, "blockSize"); | |||
keyBits = getIntAttr(keyData, "keyBits"); | |||
hashSize = getIntAttr(keyData, "hashSize"); | |||
cipherAlgorithm = CipherAlgorithm.fromXmlId(keyData.getAttribute("cipherAlgorithm"), keyBits); | |||
cipherAlgorithm = CipherAlgorithm.fromXmlId(keyData.getAttribute("cipherAlgorithm"), keyBits == null ? -1 : keyBits); | |||
cipherChaining = ChainingMode.fromXmlId(keyData.getAttribute("cipherChaining")); | |||
hashAlgorithm = HashAlgorithm.fromEcmaId(keyData.getAttribute("hashAlgorithm")); | |||
if (cipherAlgorithm == null || cipherChaining == null || hashAlgorithm == null) { |