Skip to content

Commit 522c853

Browse files
author
lx200916
committedFeb 27, 2025
fix: prevent panic in FileReader when buffer size exceeds file length.
1 parent 180ef76 commit 522c853

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed
 

‎rust/src/file.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ impl FileReader {
8888
let offset = self.position;
8989
self.position = usize::min(self.position + buf.len(), self.file_length());
9090
let read_bytes = self.position - offset;
91+
let buf = &mut buf[..read_bytes];
9192
self.read_range_buf(buf, offset).await?;
9293
Ok(read_bytes)
9394
}
@@ -110,8 +111,7 @@ impl FileReader {
110111
///
111112
/// Panics if the requested range is outside of the file
112113
pub async fn read_range_buf(&self, mut buf: &mut [u8], offset: usize) -> Result<()> {
113-
let read_length = usize::min(buf.len(), self.file_length() - offset);
114-
let mut stream = self.read_range_stream(offset, read_length).boxed();
114+
let mut stream = self.read_range_stream(offset, buf.len()).boxed();
115115
while let Some(bytes) = stream.next().await.transpose()? {
116116
buf.put(bytes);
117117
}

0 commit comments

Comments
 (0)
Failed to load comments.