Bug 66425: Avoid a ClassCastException found via oss-fuzz

We try to avoid throwing ClassCastException, but it was possible
to trigger one here with a specially crafted input-file

Should fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62170

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912252 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2023-09-11 18:25:13 +00:00
parent e666d3756e
commit 481c00bc6f
4 changed files with 8 additions and 4 deletions

View File

@ -395,7 +395,11 @@ implements XSLFShapeContainer, Sheet<XSLFShape,XSLFTextParagraph> {
if(sp.length == 0) { if(sp.length == 0) {
throw new IllegalStateException("CTGroupShape was not found"); throw new IllegalStateException("CTGroupShape was not found");
} }
_spTree = (CTGroupShape)sp[0]; XmlObject xmlObject = sp[0];
if (!(xmlObject instanceof CTGroupShape)) {
throw new IllegalArgumentException("Had unexpected type of entry: " + xmlObject.getClass());
}
_spTree = (CTGroupShape) xmlObject;
} }
return _spTree; return _spTree;
} }

View File

@ -271,9 +271,9 @@ implements Slide<XSLFShape,XSLFTextParagraph> {
*/ */
@Override @Override
public XSLFBackground getBackground() { public XSLFBackground getBackground() {
CTBackground bg = _slide.getCSld().getBg(); if(_slide.getCSld() != null &&
if(bg != null) { _slide.getCSld().getBg() != null) {
return new XSLFBackground(bg, this); return new XSLFBackground(_slide.getCSld().getBg(), this);
} else { } else {
return getMasterSheet().getBackground(); return getMasterSheet().getBackground();
} }

Binary file not shown.