update read_up_to_bytes_from_request with more robust implementation

This commit is contained in:
2026-05-10 17:22:45 +02:00
parent e3b7648a3f
commit 52049c456e

View File

@@ -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}");