Files

25 lines
635 B
Rust

#![no_main]
use libfuzzer_sys::fuzz_target;
use wgcloak::transport::tls_tcp::FrameCodec;
const MAX_INPUT: usize = 64 * 1024;
const MAX_FRAME: usize = 16 * 1024;
const CHUNK: usize = 97;
fuzz_target!(|input: &[u8]| {
let input = &input[..input.len().min(MAX_INPUT)];
let Ok(mut codec) = FrameCodec::new(MAX_FRAME) else {
return;
};
// Feed deliberately uneven chunks so header/payload state transitions are
// exercised independently of TCP read boundaries.
for chunk in input.chunks(CHUNK) {
if codec.feed(chunk).is_err() {
break;
}
}
let _ = codec.finish();
});