Commit 7db34f5 1 parent 271802c commit 7db34f5 Copy full SHA for 7db34f5
File tree 4 files changed +25
-13
lines changed
4 files changed +25
-13
lines changed Original file line number Diff line number Diff line change 1
-
2
1
target
3
2
corpus
4
3
artifacts
4
+ coverage
Original file line number Diff line number Diff line change 1
-
2
1
[package ]
3
2
name = " quick-xml-fuzz"
4
- version = " 0.0.1 "
3
+ version = " 0.0.0 "
5
4
authors = [" Automatically generated" ]
6
5
publish = false
6
+ edition = " 2018"
7
7
8
8
[package .metadata ]
9
9
cargo-fuzz = true
10
10
11
+ [dependencies ]
12
+ libfuzzer-sys = " 0.4"
13
+
11
14
[dependencies .quick-xml ]
12
15
path = " .."
13
- [dependencies .libfuzzer-sys ]
14
- git = " https://github.com/rust-fuzz/libfuzzer-sys.git"
15
16
16
17
# Prevent this from interfering with workspaces
17
18
[workspace ]
@@ -20,3 +21,5 @@ members = ["."]
20
21
[[bin ]]
21
22
name = " fuzz_target_1"
22
23
path = " fuzz_targets/fuzz_target_1.rs"
24
+ test = false
25
+ doc = false
Original file line number Diff line number Diff line change
1
+ Run fuzzing with ` -O ` to avoid false positives at ` debug_assert! ` , e.g.:
2
+
3
+ ``` bash
4
+ cargo fuzz run -O -j4 fuzz_target_1
5
+ ```
6
+
7
+ See also: https://github.com/rust-fuzz/cargo-fuzz
Original file line number Diff line number Diff line change 1
1
#![ no_main]
2
- # [ macro_use ] extern crate libfuzzer_sys;
2
+ use libfuzzer_sys:: fuzz_target ;
3
3
4
4
use quick_xml:: events:: Event ;
5
5
use quick_xml:: reader:: Reader ;
@@ -12,20 +12,22 @@ fuzz_target!(|data: &[u8]| {
12
12
let mut buf = vec![ ] ;
13
13
loop {
14
14
match reader. read_event_into( & mut buf) {
15
- Ok ( Event :: Start ( ref e) ) | Ok ( Event :: Empty ( ref e) ) => {
16
- if e. unescaped( ) . is_err( ) {
17
- break ;
18
- }
15
+ Ok ( Event :: Start ( ref e) ) | Ok ( Event :: Empty ( ref e) ) => {
19
16
for a in e. attributes( ) {
20
- if a. ok( ) . map_or( false , |a| a. unescaped_value ( ) . is_err( ) ) {
17
+ if a. ok( ) . map_or( false , |a| a. unescape_value ( ) . is_err( ) ) {
21
18
break ;
22
19
}
23
20
}
24
21
}
25
22
Ok ( Event :: Text ( ref e) ) | Ok ( Event :: Comment ( ref e) )
26
- | Ok ( Event :: CData ( ref e ) ) | Ok ( Event :: PI ( ref e) )
23
+ | Ok ( Event :: PI ( ref e) )
27
24
| Ok ( Event :: DocType ( ref e) ) => {
28
- if e. unescaped( ) . is_err( ) {
25
+ if e. unescape( ) . is_err( ) {
26
+ break ;
27
+ }
28
+ }
29
+ Ok ( Event :: CData ( e) ) => {
30
+ if e. escape( ) . is_err( ) {
29
31
break ;
30
32
}
31
33
}
You can’t perform that action at this time.
0 commit comments