Fix rights checks across the codebase.
* Fix path_open granting more rights than requested * Add missing rights checks in: fd_fdstat_set_flags, fd_filestat_get, poll_oneoff * Fix `open_scratch_directory` not requesting any rights. * Properly request needed rights in various tests * Add some extra trace-level logging * Remove a no-op restriction of rights to the ones returned by `determine_type_rights`. It was redundant, because `FdEntry:from` internally also called `determine_type_rights` and only dropped some of them.
This commit is contained in:
committed by
Dan Gohman
parent
5efa640e23
commit
f7f10c12b3
@@ -24,7 +24,8 @@ pub fn open_scratch_directory(path: &str) -> Result<wasi::Fd, String> {
|
||||
}
|
||||
dst.set_len(stat.u.dir.pr_name_len);
|
||||
if dst == path.as_bytes() {
|
||||
return Ok(wasi::path_open(i, 0, ".", wasi::OFLAGS_DIRECTORY, 0, 0, 0)
|
||||
let (base, inherit) = fd_get_rights(i);
|
||||
return Ok(wasi::path_open(i, 0, ".", wasi::OFLAGS_DIRECTORY, base, inherit, 0)
|
||||
.expect("failed to open dir"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user