path_open: ENOTDIR when fd is a file

This commit is contained in:
Pat Hickey
2020-12-18 16:57:43 -08:00
parent f663045563
commit 8deb3ed07c

View File

@@ -663,7 +663,11 @@ impl<'a> wasi_snapshot_preview1::WasiSnapshotPreview1 for WasiCtx {
fdflags: types::Fdflags, fdflags: types::Fdflags,
) -> Result<types::Fd, Error> { ) -> Result<types::Fd, Error> {
let mut table = self.table(); let mut table = self.table();
let dir_entry: Ref<DirEntry> = table.get(u32::from(dirfd))?; let dirfd = u32::from(dirfd);
if table.is::<FileEntry>(dirfd) {
return Err(Error::Notdir);
}
let dir_entry: Ref<DirEntry> = table.get(dirfd)?;
let symlink_follow = dirflags.contains(&types::Lookupflags::SYMLINK_FOLLOW); let symlink_follow = dirflags.contains(&types::Lookupflags::SYMLINK_FOLLOW);