diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index ff092d5..f0b5abc 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -1,4 +1,3 @@ - [package] name = "ctap2-fuzz" version = "0.0.0" @@ -14,7 +13,7 @@ libfuzzer-sys = { version = "0.3"} arrayref = "0.3.6" libtock_drivers = { path = "../third_party/libtock-drivers" } crypto = { path = "../libraries/crypto", features = ['std'] } -cbor = { path = "../libraries/cbor"} +cbor = { path = "../libraries/cbor" } [dependencies.ctap2] path = ".." diff --git a/fuzz/fuzz_targets/fuzz_target_split_assemble.rs b/fuzz/fuzz_targets/fuzz_target_split_assemble.rs index 02ec7f0..e3ebd50 100644 --- a/fuzz/fuzz_targets/fuzz_target_split_assemble.rs +++ b/fuzz/fuzz_targets/fuzz_target_split_assemble.rs @@ -15,10 +15,10 @@ const DUMMY_TIMESTAMP: Timestamp = Timestamp::from_ms(0); const PACKET_TYPE_MASK: u8 = 0x80; // Converts a byte slice into Message -fn raw_to_message(data: &[u8], len: usize) -> Message { - if len <= 4 { +fn raw_to_message(data: &[u8]) -> Message { + if data.len() <= 4 { let mut cid = [0; 4]; - cid[..len].copy_from_slice(data); + cid[..data.len()].copy_from_slice(data); Message { cid, cmd: 0, @@ -35,30 +35,18 @@ fn raw_to_message(data: &[u8], len: usize) -> Message { /* Fuzzing HID packets splitting and assembling functions*/ fuzz_target!(|data: &[u8]| { - let Message { - cid, - mut cmd, - payload, - } = raw_to_message(data, data.len()); - if let Some(hid_packet_iterator) = HidPacketIterator::new(Message { - cid, - cmd, - payload: payload.clone(), - }) { + let mut message = raw_to_message(data); + if let Some(hid_packet_iterator) = HidPacketIterator::new(message.clone()) { let mut assembler = MessageAssembler::new(); let packets: Vec = hid_packet_iterator.collect(); if let Some((last_packet, first_packets)) = packets.split_last() { for packet in first_packets { assert_eq!(assembler.parse_packet(packet, DUMMY_TIMESTAMP), Ok(None)); } - cmd = cmd & !PACKET_TYPE_MASK; + message.cmd &= !PACKET_TYPE_MASK; assert_eq!( assembler.parse_packet(last_packet, DUMMY_TIMESTAMP), - Ok(Some(Message { - cid, - cmd, - payload: payload.clone() - })) + Ok(Some(message.clone())) ); } }