domain_json.rs (689B)
1 #![no_main] 2 3 use iuna::{ 4 app::GossipEnvelope, 5 domain::{Block, BurnBundle, ChainSnapshot, Transaction}, 6 }; 7 use libfuzzer_sys::fuzz_target; 8 9 fuzz_target!(|data: &[u8]| { 10 if data.len() > 2 * 1024 * 1024 { 11 return; 12 } 13 let Ok(line) = std::str::from_utf8(data) else { 14 return; 15 }; 16 17 let _ = serde_json::from_str::<Transaction>(line); 18 let _ = serde_json::from_str::<BurnBundle>(line); 19 let _ = serde_json::from_str::<Block>(line).map(|block| { 20 let _ = block.json_size_bytes(); 21 let _ = block.compute_hash(); 22 }); 23 let _ = serde_json::from_str::<ChainSnapshot>(line); 24 let _ = serde_json::from_str::<GossipEnvelope>(line); 25 });