From 5c2a89412b08c4b71f2ab79b88f26827028916b4 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Thu, 7 Sep 2023 08:35:23 +0000 Subject: [PATCH] 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 Fixes https://oss-fuzz.com/testcase-detail/4959857092198400 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912157 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xwpf/usermodel/XWPFHeaderFooter.java | 8 ++++---- .../poi/xwpf/usermodel/XWPFRelation.java | 8 ++++++++ ...imized-POIXWPFFuzzer-4959857092198400.docx | Bin 0 -> 50918 bytes test-data/spreadsheet/stress.xls | Bin 68096 -> 69120 bytes 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 test-data/document/clusterfuzz-testcase-minimized-POIXWPFFuzzer-4959857092198400.docx diff --git a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java index 84a02e10f7..225a8f496e 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java @@ -71,11 +71,11 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo */ public XWPFHeaderFooter(POIXMLDocumentPart parent, PackagePart part) { super(parent, part); - this.document = (XWPFDocument) getParent(); - - if (this.document == null) { - throw new NullPointerException(); + final POIXMLDocumentPart p = getParent(); + if (!(p instanceof XWPFDocument)) { + throw new IllegalArgumentException("Had unexpected type of parent: " + (p == null ? "" : p.getClass())); } + this.document = (XWPFDocument) p; } @Override diff --git a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java index 074a941669..83ed6c11f1 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java @@ -271,4 +271,12 @@ public final class XWPFRelation extends POIXMLRelation { return _table.get(rel); } + @Override + public String toString() { + return "XWPFRelation{" + + //getRelation() + "/" + + getContentType() + "/" + + getDefaultFileName() + + "}"; + } } diff --git a/test-data/document/clusterfuzz-testcase-minimized-POIXWPFFuzzer-4959857092198400.docx b/test-data/document/clusterfuzz-testcase-minimized-POIXWPFFuzzer-4959857092198400.docx new file mode 100644 index 0000000000000000000000000000000000000000..fc5d388422201b82268204d43b0ad6e694ce541f GIT binary patch literal 50918 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%0A40?b5tB*ssmlzURDU;> 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 literal 0 HcmV?d00001 diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index a47f99b2cb7fd05e6c355ecbbbdebcdcbb01cb6d..eeecaeb553fe6759a7b38b6c57d6e4534cd01ea1 100644 GIT binary patch delta 1355 zcmb7DU1(Eh7=FIflQc<6VJUPX-VD7dh^~9TlW-E<#kPy@=`=N&=(VbgbR{E732W_V5> zm9D?F-pG?pp1JX{Lo-iU6KA8bTiz8ClepT_@sDpipJ?&gsEC>afaGG^kwXd^(&$D6 zztbcSN{oJ}${)6@Cw|Glm@oIY)S|c@T~(I&qWDb`G$M-BTTe^=K$YzW7FFd0tK@Iz zFZ_yKYUe&hMAXS6im)Zd^eMG5)EI4STui{0I&f79tdyGB4%>JN{q_>wSc4;EePf+B ztArdQJ_oj<3qDyb?K;kfW9`z}X?`)b*OicgVe3__LzO0$Tdn)QTE=$s>0~Ide_!9u zor6b@>bX#~XG71X4Y5eiy6&D$(MY5#X(om`cu-$j%xXE^D2y}o4rTR3K~Jitp{wSA zD%wBQ(^?^A8ppJ3Hl0e?arg@(*_FwMzBF@5p);7F{;rIc$eF!{)}Pj?s-=vzLz#3q zEJ$I8M9_)g`@+Q!mCdYf5O2WDWwb&*WDX3Z61t-x^s+fKq381{<8UV3Xy8B3Y#dn> z+x*X&1wE6cd(r=8&;G%JdPGaAjpJxDb?eq`s$RS7&HTdNCD!+a%EDmKe!AjwkIv*c z5WWP&egvj}1@7Dj4nF`6KBI>@ZHU3Bx;_Pr(?i#C1NL{%Mq3o&k zl<6N9kApU`rOS?V8A5u@p$X|CnG*)e5YmtEF@9EnwA9D@MusVJefyD%t>VGwoo(_A(D@R${2G{j0|ejlv5{WyDI%YybH-vX=9qQk`2qIB O%VqqR(Hqy@O#T~YUu)d} delta 614 zcmZWmOK4L;6g_wH+P-faYYZZdCb)^>r^R44BGFn9MU5b(E_ERmTuA*Of+bdoqM)x_ zF^ZxAQNgb2bY)BEN(I3P7Q|}Bg@_eJTvY{)_q~=za4~o8J#+3oXJ!gFjlvbf&(o3N z-I}Zc0Do$=+8OPsQF4z;`CH0kvhzgbT4VC8KURIueMV93_^E#xPa@`nbAr642-ErO zLu;8L;-r)KFUI(iV})ptHKhP*piSsQFZSUOI?#@%qGG})+2oWboOQzY-8e6Gow+O* zW@T@&oxzwAni67ATJ_R*Q?qOrSTH*-VEJy0Ke=9b6l2>9GU?=YFR&HJSyl{hHY*VlO;yw&qY?0HycnzyY`+fQ;K8&j*^^3`m2 z!yW@TrN3trNj2D}qdgLC9UpH=r^BZRLPgf&3&5J|B5@yhHv&8w2M#<3`rq*AbeFCc zi&3iR?$U6VUORQdc3vTe7h-*j%5(m1iZ4%^e0wswaHDF)NaK)9%*g@|`2n=ww=xFE5PNLJ= S`aDB}hs`^CzqZ}8$@mM86`jHW