From 52049c456e395cd5c6b22c5d3df8cd10bdbcd186 Mon Sep 17 00:00:00 2001 From: ju6ge Date: Sun, 10 May 2026 17:22:45 +0200 Subject: [PATCH] update read_up_to_bytes_from_request with more robust implementation --- rust/src/webserver/mod.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rust/src/webserver/mod.rs b/rust/src/webserver/mod.rs index 7f128aa..e03ce19 100644 --- a/rust/src/webserver/mod.rs +++ b/rust/src/webserver/mod.rs @@ -221,12 +221,18 @@ where let mut data_store = Vec::new(); let mut total_read = 0; loop { + let left = max_read - total_read; let mut buf = [0_u8; 64]; - let read = request.read(&mut buf).await?; + let s_buf = if buf.len() <= left { + &mut buf + } else { + &mut buf[0..left] + }; + let read = request.read(s_buf).await?; if read == 0 { break; } - let actual_data = &buf[0..read]; + let actual_data = &s_buf[0..read]; total_read += read; if total_read > max_read { bail!("Request too large {total_read} > {max_read}");