File tree Expand file tree Collapse file tree 4 files changed +22
-13
lines changed Expand file tree Collapse file tree 4 files changed +22
-13
lines changed Original file line number Diff line number Diff line change @@ -13,7 +13,11 @@ edition = "2018"
13
13
members = [" ." ]
14
14
15
15
[dependencies ]
16
- arbitrary = " 0.2"
16
+ # arbitrary = "0.3"
17
+ arbitrary = { git = " https://github.com/rust-fuzz/arbitrary.git" , rev = " 8fa099d" }
17
18
18
19
[build-dependencies ]
19
20
cc = " 1.0"
21
+
22
+ [features ]
23
+ arbitrary-derive = [" arbitrary/derive" ]
Original file line number Diff line number Diff line change @@ -8,5 +8,4 @@ edition = "2018"
8
8
members = [" ." ]
9
9
10
10
[dependencies ]
11
- libfuzzer-sys = { path = " .." }
12
- arbitrary = " 0.2"
11
+ libfuzzer-sys = { path = " .." , features = [" arbitrary-derive" ] }
Original file line number Diff line number Diff line change 1
1
#![ no_main]
2
2
3
- use libfuzzer_sys:: fuzz_target;
3
+ use libfuzzer_sys:: { arbitrary , fuzz_target} ;
4
4
5
- fuzz_target ! ( |data: u16 | {
6
- if data == 0xba7 { // ba[nana]
7
- panic!( "success!" ) ;
5
+ #[ derive( arbitrary:: Arbitrary , Debug ) ]
6
+ struct Rgb {
7
+ r : u8 ,
8
+ g : u8 ,
9
+ b : u8 ,
10
+ }
11
+
12
+ fuzz_target ! ( |rgb: Rgb | {
13
+ if rgb. r < rgb. g {
14
+ if rgb. g < rgb. b {
15
+ panic!( "success: r < g < b!" ) ;
16
+ }
8
17
}
9
18
} ) ;
Original file line number Diff line number Diff line change @@ -129,14 +129,11 @@ macro_rules! fuzz_target {
129
129
( |$data: ident: $dty: ty| $body: block) => {
130
130
#[ no_mangle]
131
131
pub extern "C" fn rust_fuzzer_test_input( bytes: & [ u8 ] ) {
132
- use libfuzzer_sys:: arbitrary:: { Arbitrary , RingBuffer } ;
132
+ use libfuzzer_sys:: arbitrary:: { Arbitrary , Unstructured } ;
133
133
134
- let mut buf = match RingBuffer :: new( bytes, bytes. len( ) ) {
135
- Ok ( b) => b,
136
- Err ( _) => return ,
137
- } ;
134
+ let mut u = Unstructured :: new( bytes) ;
138
135
139
- let $data: $dty = match Arbitrary :: arbitrary ( & mut buf ) {
136
+ let $data: $dty = match Arbitrary :: arbitrary_take_rest ( u ) {
140
137
Ok ( d) => d,
141
138
Err ( _) => return ,
142
139
} ;
You can’t perform that action at this time.
0 commit comments