fixup dir/file caps into rights

This commit is contained in:
Pat Hickey
2020-12-17 17:29:00 -08:00
parent df0218c086
commit 8ac688287e

View File

@@ -593,8 +593,8 @@ impl<'a> wasi_snapshot_preview1::WasiSnapshotPreview1 for WasiCtx {
} }
let dir = dir_entry.get_cap(DirCaps::OPEN)?; let dir = dir_entry.get_cap(DirCaps::OPEN)?;
let child_dir = dir.open_dir(symlink_follow, path.deref())?; let child_dir = dir.open_dir(symlink_follow, path.deref())?;
let file_caps = dir_entry.child_file_caps(FileCaps::from(&fs_rights_base)); let dir_caps = dir_entry.child_dir_caps(DirCaps::from(&fs_rights_base));
let dir_caps = dir_entry.child_dir_caps(DirCaps::from(&fs_rights_inheriting)); let file_caps = dir_entry.child_file_caps(FileCaps::from(&fs_rights_inheriting));
drop(dir); drop(dir);
drop(dir_entry); drop(dir_entry);
let fd = table.push(Box::new(DirEntry::new( let fd = table.push(Box::new(DirEntry::new(
@@ -745,10 +745,12 @@ impl From<&FdStat> for types::Fdstat {
impl From<&DirStat> for types::Fdstat { impl From<&DirStat> for types::Fdstat {
fn from(dirstat: &DirStat) -> types::Fdstat { fn from(dirstat: &DirStat) -> types::Fdstat {
let fs_rights_base = types::Rights::from(&dirstat.dir_caps);
let fs_rights_inheriting = types::Rights::from(&dirstat.file_caps);
types::Fdstat { types::Fdstat {
fs_filetype: types::Filetype::Directory, fs_filetype: types::Filetype::Directory,
fs_rights_base: types::Rights::from(&dirstat.file_caps), fs_rights_base,
fs_rights_inheriting: types::Rights::from(&dirstat.dir_caps), fs_rights_inheriting,
fs_flags: types::Fdflags::empty(), fs_flags: types::Fdflags::empty(),
} }
} }