24 lines
712 B
Rust
24 lines
712 B
Rust
#![no_main]
|
|
|
|
use libfuzzer_sys::fuzz_target;
|
|
use esp_p4_eth::{zeroed_tx_descriptors, DescriptorError, TDesRing, BUF_SIZE, TX_DESC_COUNT};
|
|
|
|
fuzz_target!(|data: &[u8]| {
|
|
let mut descriptors = zeroed_tx_descriptors();
|
|
let mut buffers = [[0u8; BUF_SIZE]; TX_DESC_COUNT];
|
|
let mut ring = TDesRing::new(&mut descriptors, &mut buffers);
|
|
|
|
match ring.transmit(data) {
|
|
Ok(()) => {
|
|
assert!(data.len() <= BUF_SIZE);
|
|
}
|
|
Err(DescriptorError::BufferTooLarge(_)) => {
|
|
assert!(data.len() > BUF_SIZE);
|
|
}
|
|
Err(DescriptorError::RingFull) => {}
|
|
Err(DescriptorError::NoFrame) => {}
|
|
}
|
|
|
|
assert!(ring.fuzz_current_index() < TX_DESC_COUNT);
|
|
});
|