fix file rights

This commit is contained in:
Pat Hickey
2020-12-16 17:19:27 -08:00
parent 8777194f0d
commit 23b5689a5f
2 changed files with 10 additions and 7 deletions

View File

@@ -101,7 +101,7 @@ impl WasiCtxBuilder {
path: impl AsRef<Path>,
) -> Result<&mut Self, Error> {
let caps = DirCaps::all();
let file_caps = FileCaps::READ | FileCaps::WRITE; // XXX more base caps
let file_caps = FileCaps::all();
self.0.table().push(Box::new(DirEntry::new(
caps,
file_caps,

View File

@@ -786,13 +786,13 @@ impl From<&FileCaps> for types::Rights {
rights = rights | types::Rights::FD_ALLOCATE;
}
if caps.contains(&FileCaps::FILESTAT_GET) {
rights = rights | types::Rights::PATH_FILESTAT_GET;
rights = rights | types::Rights::FD_FILESTAT_GET;
}
if caps.contains(&FileCaps::FILESTAT_SET_SIZE) {
rights = rights | types::Rights::PATH_FILESTAT_SET_SIZE;
rights = rights | types::Rights::FD_FILESTAT_SET_SIZE;
}
if caps.contains(&FileCaps::FILESTAT_SET_TIMES) {
rights = rights | types::Rights::PATH_FILESTAT_SET_TIMES;
rights = rights | types::Rights::FD_FILESTAT_SET_TIMES;
}
rights
}
@@ -823,16 +823,19 @@ impl From<&types::Rights> for FileCaps {
if rights.contains(&types::Rights::FD_WRITE) {
caps = caps | FileCaps::WRITE;
}
if rights.contains(&types::Rights::FD_ADVISE) {
caps = caps | FileCaps::ADVISE;
}
if rights.contains(&types::Rights::FD_ALLOCATE) {
caps = caps | FileCaps::ALLOCATE;
}
if rights.contains(&types::Rights::PATH_FILESTAT_GET) {
if rights.contains(&types::Rights::FD_FILESTAT_GET) {
caps = caps | FileCaps::FILESTAT_GET;
}
if rights.contains(&types::Rights::PATH_FILESTAT_SET_SIZE) {
if rights.contains(&types::Rights::FD_FILESTAT_SET_SIZE) {
caps = caps | FileCaps::FILESTAT_SET_SIZE;
}
if rights.contains(&types::Rights::PATH_FILESTAT_SET_TIMES) {
if rights.contains(&types::Rights::FD_FILESTAT_SET_TIMES) {
caps = caps | FileCaps::FILESTAT_SET_TIMES;
}
caps