20 lines
624 B
Rust
20 lines
624 B
Rust
#![no_main]
|
|
use libfuzzer_sys::fuzz_target;
|
|
use smoltcp::wire::{DhcpPacket, DhcpRepr};
|
|
|
|
fuzz_target!(|data: &[u8]| {
|
|
let _ = match DhcpPacket::new_checked(data) {
|
|
Ok(ref packet) => match DhcpRepr::parse(packet) {
|
|
Ok(dhcp_repr) => {
|
|
let mut dhcp_payload = vec![0; dhcp_repr.buffer_len()];
|
|
match DhcpPacket::new_checked(&mut dhcp_payload[..]) {
|
|
Ok(mut dhcp_packet) => Some(dhcp_repr.emit(&mut dhcp_packet)),
|
|
Err(_) => None,
|
|
}
|
|
}
|
|
Err(_) => None,
|
|
},
|
|
Err(_) => None,
|
|
};
|
|
});
|