update read_up_to_bytes_from_request with more robust implementation
This commit is contained in:
@@ -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}");
|
||||
|
||||
Reference in New Issue
Block a user