diff --git a/crates/wasi-c2/src/snapshots/preview_1.rs b/crates/wasi-c2/src/snapshots/preview_1.rs index 802efe5fca..8e0b379cb5 100644 --- a/crates/wasi-c2/src/snapshots/preview_1.rs +++ b/crates/wasi-c2/src/snapshots/preview_1.rs @@ -186,6 +186,16 @@ impl TryFrom for types::Errno { std::io::ErrorKind::PermissionDenied => Ok(types::Errno::Perm), std::io::ErrorKind::AlreadyExists => Ok(types::Errno::Exist), std::io::ErrorKind::InvalidInput => Ok(types::Errno::Ilseq), + std::io::ErrorKind::Other => match err.get_ref() { + Some(e) => { + if e.to_string() == "symlink encountered" { + Ok(types::Errno::Loop) + } else { + Err(anyhow!(err).context("Unknown ErrorKind::Other error")) + } + } + None => Err(anyhow!(err).context("No raw OS error or inner error")), + }, k => Err(anyhow!(err).context(format!("No raw OS error. Unhandled kind: {:?}", k))), }, }