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);