fix buffer out of range on small packets

This commit is contained in:
2026-06-11 16:52:22 +02:00
parent 37afa2c044
commit 5ccac4f3d4
3 changed files with 7 additions and 4 deletions

View File

@ -1,6 +1,6 @@
[package] [package]
name = "dockermcmgr" name = "dockermcmgr"
version = "0.0.4" version = "0.0.5"
edition = "2024" edition = "2024"
[[bin]] [[bin]]

View File

@ -38,7 +38,7 @@
final: final:
{ {
pname = "dmm"; pname = "dmm";
version = "0.0.4"; version = "0.0.5";
inherit src; inherit src;
cargoLock.lockFile = src + "/Cargo.lock"; cargoLock.lockFile = src + "/Cargo.lock";

View File

@ -2,6 +2,7 @@ use crate::minecraft::client::client::Client;
use crate::minecraft::varint::varint_read; use crate::minecraft::varint::varint_read;
use std::cmp::min;
use std::collections::VecDeque; use std::collections::VecDeque;
use std::io; use std::io;
@ -77,12 +78,14 @@ impl Client {
} }
let _ = self.buffer.extend(data); let _ = self.buffer.extend(data);
let varint_buffer_len = min(self.buffer.len(), 5);
let mut varint_buffer: VecDeque<u8> = self.buffer[..5].to_vec().into(); let mut varint_buffer: VecDeque<u8> = self.buffer[..varint_buffer_len].to_vec().into();
println!("varint_buffer : {:?}", varint_buffer); println!("varint_buffer : {:?}", varint_buffer);
let expected_len = varint_read(&mut varint_buffer)?; let expected_len = varint_read(&mut varint_buffer)?;
let varint_len = 5 - varint_buffer.len(); let varint_len = varint_buffer_len - varint_buffer.len();
println!("expected len : {}, current len : {}", expected_len as usize, self.buffer.len()); println!("expected len : {}, current len : {}", expected_len as usize, self.buffer.len());
println!("buffer : {:?}", self.buffer); println!("buffer : {:?}", self.buffer);