Skip to content

Commit 8ee537b

Browse files
committed
Add (failing) test for #465 (waiting for Woodstox fix)
1 parent b0a4d65 commit 8ee537b

File tree

4 files changed

+77
-1
lines changed

4 files changed

+77
-1
lines changed

src/test/java/com/fasterxml/jackson/dataformat/xml/XmlTestBase.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,29 @@ protected String readAll(File f) throws IOException
334334
return sb.toString();
335335
}
336336

337+
protected byte[] readResource(String ref)
338+
{
339+
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
340+
final byte[] buf = new byte[4000];
341+
342+
InputStream in = getClass().getResourceAsStream(ref);
343+
if (in != null) {
344+
try {
345+
int len;
346+
while ((len = in.read(buf)) > 0) {
347+
bytes.write(buf, 0, len);
348+
}
349+
in.close();
350+
} catch (IOException e) {
351+
throw new RuntimeException("Failed to read resource '"+ref+"': "+e);
352+
}
353+
}
354+
if (bytes.size() == 0) {
355+
throw new IllegalArgumentException("Failed to read resource '"+ref+"': empty resource?");
356+
}
357+
return bytes.toByteArray();
358+
}
359+
337360
public String jaxbSerialized(Object ob, Class<?>... classes) throws Exception
338361
{
339362
StringWriter sw = new StringWriter();

src/test/java/com/fasterxml/jackson/dataformat/xml/failing/XmlParserErrorHandling463Test.java renamed to src/test/java/com/fasterxml/jackson/dataformat/xml/failing/Fuzz463_32872_XmlDeclTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// [dataformat-xml#463]
1010
// (but root cause of https://github.com/FasterXML/woodstox/issues/123)
11-
public class XmlParserErrorHandling463Test extends XmlTestBase
11+
public class Fuzz463_32872_XmlDeclTest extends XmlTestBase
1212
{
1313
private final XmlMapper MAPPER = newMapper();
1414

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.fasterxml.jackson.dataformat.xml.failing;
2+
3+
import com.fasterxml.jackson.databind.JsonNode;
4+
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
5+
import com.fasterxml.jackson.dataformat.xml.XmlTestBase;
6+
7+
public class Fuzz465_32906_CDataReadTest extends XmlTestBase
8+
{
9+
private final XmlMapper MAPPER = newMapper();
10+
11+
public void testIssue465() throws Exception
12+
{
13+
byte[] doc = readResource("/data/fuzz-32906.xml");
14+
JsonNode root = MAPPER.readTree(doc);
15+
assertNotNull(root);
16+
}
17+
}

src/test/resources/data/fuzz-32906.xml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<ue>&gt; <u><_> encoding="1" <u><_> <u><u> d="">=]]<ue>&gt; <u><_> encoding="1" <u><_> <u><uHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH> d="">=]]]<n d="">d="xel<![CDATA[]]]xmlns:]]]]]]]]]]_]]]]]]]]]]]]]]]]]]]]]]]#FIXEDmp;any>
2+
--><![CDATA[<!mln<!NOTATIONa----><!--="2"r]]>xa----><!--<doc>&amp;any>
3+
--><![CDATA[ NMTOKENencoding="1">&
4+
r> <Person>
5+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u>:::::::::::::::::::::::: <u> <u><_> <u><u> <u> <u><> <u><u> <u> <u><u><_> <u> TA[]]]xmlns:]]]]]]]]]]_]]]]]]]]]]]]]]]]]]]]]]]#FIXEDmp;any>
6+
--><![CDATA[<!mln<!NOTATIONa----><!--="1"r]]>xa----><!--<doc>&amp;any>
7+
--><![CDATA[ NMTOKENencoding="1">&
8+
r> <Person>
9+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><> <u><u> <u> <u><u><_> <u> <u><_> <u><_> <u><u> <u> <u><_>nil <u><u> <u> <u> <u>u> <u><_> <u><_> <u><u> <u> <u><_>nil <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <]>Xa----><!--<doc>&amp;any>
10+
--><![CDATA[:!mml~s9"3doc>&
11+
r> <Person>
12+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u>:schema_> Ĕ><_> <u><u> <u> <u><_>nil <u><u> <u> <=]]]<n d="">d="xel<]<n d="">d="xel<![CDATA[]]]xmlns:]]]]]]]]]]_]]]]]]]]]]]]]]]]]]]]]]SHIFT_JIS;any>
13+
--><![CDATA[<!mln<!NOTATIONa----><!--="2"r]]>xa----><!--<doc>&amp;any>
14+
--><![CDATA[ NMTOKENencoding="1">&
15+
r> <Person>
16+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <u><_> <u><_> <u><u> <u> <u><_>nil <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <]>xa--<]>xa----><!--<doc>&amp;any>
17+
--><![CDATA[:!mml~s="3doc>&
18+
r> ( <Person>
19+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><<u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u>:schema_> Ĕ><_> <u><u> <u> <u><_>nil <u><u> <u> <=]]]<n d="">d="xel<]<n d="">d="xel<![CDATA[]]]xmlns:]]]]]]]]]]_]]]]]]]]]]]]]]]]]]]]]]]#F;IXEDmp;any>
20+
--><![CDATA[<!mln<!NOTATIONa----><!--="2"r]]>xa----><!--<doc>&amp;any>
21+
--><![CDATA[ NMTOKENencoding="1">&
22+
r> <Person>
23+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <u><_> <u><_> <u><u> <u> <u><_>nil <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <]>xa--<]>xa----><!--<doc>&amp;any>
24+
--><![CDATA[:!mml~s="3doc>&
25+
r> ( <Person>
26+
<FullN <u><u><_> <u><u>< <u><u> <u> <u><u><_> <u> <u><_> <u><_> <u><u> <u> <u><_>nil <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <]>Xa----><!--<doc>&amp;any>
27+
--><![CDATA[:!mml~s9"3doc>&
28+
r> <Person>
29+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u>:schema_> Ĕ><_> <u><u> <u> <u><_>nil <u><u> <u> <=]]]<n d="">d="xel<]<n d="">d="xel<![CDATA[]]]xmlns:]]]]]]]]]]_]]]]]]]]]]]]]]]]]]]]]]SHIFT_JIS;any>
30+
--><![CDATA[<!mln<!NOTATIONa----><!--="2"r]]>xa----><!--<doc>&amp;any>
31+
--><![CDATA[ NMTOKENencoding="1">&
32+
r> <Person>
33+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <u><_> <u><_> <u><u> <u> <u><_>nil <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u> <]>xa--<]>xa----><!--<doc>&amp;any>
34+
--><![CDATA[:!mml~s="3doc>&
35+
r> ( <Person>
36+
<FullN <u><u><_> <u><u><? <u> <u><_> <u><u> <u> <u> <u><_> <u><u> <u> <u><_> <u><u> <u> <u><u><_> <u>:schema_> Ĕ><_> <u><u> <u> <u><_>nil <u><u> <u> <=]]]<n d="">d="xel<!󲯃

0 commit comments

Comments
 (0)