Files

35 lines
917 B
Rust

#![no_main]
use libfuzzer_sys::fuzz_target;
fuzz_target!(|data: &[u8]| {
let mut state = dd3_protocol::ReassemblyState::default();
let mut buffer = [0u8; 4096];
let mut pos = 0usize;
while pos + 7 <= data.len() {
let batch_id = u16::from_le_bytes([data[pos], data[pos + 1]]);
let idx = data[pos + 2];
let cnt = data[pos + 3];
let total_len = u16::from_le_bytes([data[pos + 4], data[pos + 5]]);
let chunk_len = data[pos + 6] as usize;
pos += 7;
if pos + chunk_len > data.len() {
break;
}
let chunk = &data[pos..pos + chunk_len];
pos += chunk_len;
let _ = dd3_protocol::push_chunk(
&mut state,
batch_id,
idx,
cnt,
total_len,
chunk,
0,
5000,
4096,
&mut buffer,
);
}
});