Files
Pumpkin/crates/pumpkin-protocol/fuzz/fuzz_targets/encoder_bedrock.rs
ZlordHUN ffcf09ece4 chore: remove bedrock raknet (#2811)
* Remove legacy RakNet transport

* Replace RakNet status with NetherNet discovery

* Restore Bedrock server-list status

* Remove NetherNet LAN discovery

* Remove unused AES dependency
2026-08-07 20:00:41 +02:00

44 lines
1.1 KiB
Rust

#![no_main]
use libfuzzer_sys::fuzz_target;
use pumpkin_protocol::bedrock::packet_encoder::BedrockBatchEncoder;
use pumpkin_protocol::bedrock::SubClient;
fuzz_target!(|data: &[u8]| {
if data.len() < 10 {
return;
}
let compression_threshold = data[0] as usize;
let compression_level = (data[1] % 10) as u32;
let packet_id = u16::from_be_bytes([data[2], data[3]]);
let sender = match data[4] % 4 {
0 => SubClient::Main,
1 => SubClient::SubClient0,
2 => SubClient::SubClient1,
_ => SubClient::SubClietn2,
};
let target = match data[5] % 4 {
0 => SubClient::Main,
1 => SubClient::SubClient0,
2 => SubClient::SubClient1,
_ => SubClient::SubClietn2,
};
let use_compression = data[6] % 2 == 0;
let packet_payload = &data[7..];
let mut encoder = BedrockBatchEncoder::new();
if use_compression {
encoder.set_compression((compression_threshold, compression_level));
}
let mut out = Vec::new();
let _ = encoder.write_game_packet(
packet_id,
sender,
target,
packet_payload,
&mut out
);
});