File tree Expand file tree Collapse file tree 3 files changed +52
-0
lines changed Expand file tree Collapse file tree 3 files changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ target
2
+ corpus
3
+ artifacts
4
+ coverage
Original file line number Diff line number Diff line change
1
+ [package ]
2
+ name = " heapless-fuzz"
3
+ version = " 0.0.0"
4
+ publish = false
5
+ edition = " 2021"
6
+
7
+ [package .metadata ]
8
+ cargo-fuzz = true
9
+
10
+ [dependencies ]
11
+ libfuzzer-sys = " 0.4"
12
+
13
+ [dependencies .heapless ]
14
+ path = " .."
15
+
16
+ [[bin ]]
17
+ name = " fuzz_vec"
18
+ path = " fuzz_targets/fuzz_vec.rs"
19
+ test = false
20
+ doc = false
21
+ bench = false
Original file line number Diff line number Diff line change
1
+ #![ no_main]
2
+
3
+ use libfuzzer_sys:: fuzz_target;
4
+
5
+ use heapless:: Vec ;
6
+
7
+ fn test_vec < const N : usize > ( data : & [ u8 ] ) {
8
+ if let Ok ( vec) = Vec :: < u8 , N > :: from_slice ( data) {
9
+ assert_eq ! ( vec. as_slice( ) , data) ;
10
+ }
11
+ }
12
+
13
+ fuzz_target ! ( |data: & [ u8 ] | {
14
+ match data. len( ) {
15
+ 0 => ( ) ,
16
+ len if len <= 16 => test_vec:: <16 >( data) ,
17
+ len if len <= 32 => test_vec:: <32 >( data) ,
18
+ len if len <= 64 => test_vec:: <64 >( data) ,
19
+ len if len <= 128 => test_vec:: <128 >( data) ,
20
+ len if len <= 256 => test_vec:: <256 >( data) ,
21
+ len if len <= 512 => test_vec:: <512 >( data) ,
22
+ len if len <= 1024 => test_vec:: <1024 >( data) ,
23
+ len if len <= 2048 => test_vec:: <2048 >( data) ,
24
+ len if len <= 4096 => test_vec:: <4096 >( data) ,
25
+ _ => ( ) ,
26
+ }
27
+ } ) ;
You can’t perform that action at this time.
0 commit comments