From 8deb3ed07cfa4ccebaf15c3aa2b6af949c6ed4ae Mon Sep 17 00:00:00 2001 From: Pat Hickey Date: Fri, 18 Dec 2020 16:57:43 -0800 Subject: [PATCH] path_open: ENOTDIR when fd is a file --- crates/wasi-c2/src/snapshots/preview_1.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/wasi-c2/src/snapshots/preview_1.rs b/crates/wasi-c2/src/snapshots/preview_1.rs index 9a52f97785..d8d37b4fc8 100644 --- a/crates/wasi-c2/src/snapshots/preview_1.rs +++ b/crates/wasi-c2/src/snapshots/preview_1.rs @@ -663,7 +663,11 @@ impl<'a> wasi_snapshot_preview1::WasiSnapshotPreview1 for WasiCtx { fdflags: types::Fdflags, ) -> Result { let mut table = self.table(); - let dir_entry: Ref = table.get(u32::from(dirfd))?; + let dirfd = u32::from(dirfd); + if table.is::(dirfd) { + return Err(Error::Notdir); + } + let dir_entry: Ref = table.get(dirfd)?; let symlink_follow = dirflags.contains(&types::Lookupflags::SYMLINK_FOLLOW);