fix out of range for slice (#931)

This commit is contained in:
唐小鸭
2025-11-27 15:57:38 +08:00
committed by GitHub
parent ee04cc77a0
commit 701960dd81
2 changed files with 12 additions and 5 deletions

9
.vscode/launch.json vendored
View File

@@ -85,6 +85,15 @@
"cwd": "${workspaceFolder}",
//"stopAtEntry": false,
//"preLaunchTask": "cargo build",
"env": {
"RUSTFS_ACCESS_KEY": "rustfsadmin",
"RUSTFS_SECRET_KEY": "rustfsadmin",
"RUSTFS_VOLUMES": "./target/volume/test{1...4}",
"RUSTFS_ADDRESS": ":9000",
"RUSTFS_CONSOLE_ENABLE": "true",
"RUSTFS_CONSOLE_ADDRESS": "127.0.0.1:9001",
"RUSTFS_OBS_LOG_DIRECTORY": "./target/logs",
},
"sourceLanguages": [
"rust"
],

View File

@@ -176,12 +176,10 @@ where
let mut write_left = length;
for block_op in &en_blocks[..data_blocks] {
if block_op.is_none() {
let Some(block) = block_op else {
error!("write_data_blocks block_op.is_none()");
return Err(io::Error::new(ErrorKind::UnexpectedEof, "Missing data block"));
}
let block = block_op.as_ref().unwrap();
};
if offset >= block.len() {
offset -= block.len();
@@ -191,7 +189,7 @@ where
let block_slice = &block[offset..];
offset = 0;
if write_left < block.len() {
if write_left < block_slice.len() {
writer.write_all(&block_slice[..write_left]).await.map_err(|e| {
error!("write_data_blocks write_all err: {}", e);
e