22
33use quick_xml:: events:: Event ;
44use quick_xml:: reader:: Reader ;
5- use std :: io :: Cursor ;
5+ use quick_xml :: Error ;
66
77#[ test]
88fn fuzz_53 ( ) {
99 let data: & [ u8 ] = b"\xe9 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \
1010\x00 \x00 \x00 \x00 \n (\x00 \x00 \x00 \x00 \x00 \x00 \x01 \x00 \x00 \x00 \
1111\x00 <>\x00 \x08 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 <<\x00 \x00 \x00 ";
12- let cursor = Cursor :: new ( data) ;
13- let mut reader = Reader :: from_reader ( cursor) ;
12+ let mut reader = Reader :: from_reader ( data) ;
1413 let mut buf = vec ! [ ] ;
1514 loop {
1615 match reader. read_event_into ( & mut buf) {
@@ -25,8 +24,7 @@ fn fuzz_101() {
2524 let data: & [ u8 ] = b"\x00 \x00 <\x00 \x00 \x0a >�?#\x0a 413518\
2625 #\x0a \x0a \x0a ;<:<)(<:\x0a \x0a \x0a \x0a ;<:\x0a \x0a \
2726 <:\x0a \x0a \x0a \x0a \x0a <\x00 *\x00 \x00 \x00 \x00 ";
28- let cursor = Cursor :: new ( data) ;
29- let mut reader = Reader :: from_reader ( cursor) ;
27+ let mut reader = Reader :: from_reader ( data) ;
3028 let mut buf = vec ! [ ] ;
3129 loop {
3230 match reader. read_event_into ( & mut buf) {
@@ -50,3 +48,15 @@ fn fuzz_101() {
5048 buf. clear ( ) ;
5149 }
5250}
51+
52+ #[ test]
53+ fn fuzz_empty_doctype ( ) {
54+ let data: & [ u8 ] = b"<!doctype \n >" ;
55+ let mut reader = Reader :: from_reader ( data) ;
56+ let mut buf = Vec :: new ( ) ;
57+ assert ! ( matches!(
58+ reader. read_event_into( & mut buf) . unwrap_err( ) ,
59+ Error :: EmptyDocType
60+ ) ) ;
61+ assert_eq ! ( reader. read_event_into( & mut buf) . unwrap( ) , Event :: Eof ) ;
62+ }
0 commit comments