From cc5617721027e393b444af4c48c621ab4eb31cea Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Tue, 2 Aug 2022 14:28:16 +0200 Subject: [PATCH] Removed trailing zero in WASI::fd_prestat_dir_name name return (for #3025) --- lib/wasi/src/state/mod.rs | 2 +- lib/wasi/src/syscalls/mod.rs | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/wasi/src/state/mod.rs b/lib/wasi/src/state/mod.rs index 1f34a3f92fa..51d85ff91e5 100644 --- a/lib/wasi/src/state/mod.rs +++ b/lib/wasi/src/state/mod.rs @@ -1376,7 +1376,7 @@ impl WasiFs { pr_type: __WASI_PREOPENTYPE_DIR, u: PrestatEnum::Dir { // REVIEW: - pr_name_len: inode_val.name.len() as u32 + 1, + pr_name_len: inode_val.name.len() as u32, // no need for +1, because there is no 0 end-of-string marker } .untagged(), } diff --git a/lib/wasi/src/syscalls/mod.rs b/lib/wasi/src/syscalls/mod.rs index 4d0c563a6f4..7a6e1af133b 100644 --- a/lib/wasi/src/syscalls/mod.rs +++ b/lib/wasi/src/syscalls/mod.rs @@ -959,13 +959,11 @@ pub fn fd_prestat_dir_name( let guard = inode_val.read(); match guard.deref() { Kind::Dir { .. } | Kind::Root { .. } => { - // TODO: verify this: null termination, etc let path_len: u64 = path_len.into(); - if (inode_val.name.len() as u64) < path_len { + if (inode_val.name.len() as u64) <= path_len { wasi_try_mem!(path_chars .subslice(0..inode_val.name.len() as u64) .write_slice(inode_val.name.as_bytes())); - wasi_try_mem!(path_chars.index(inode_val.name.len() as u64).write(0)); trace!("=> result: \"{}\"", inode_val.name);