Merge remote-tracking branch 'origin/main' into pch/wasi_common_cap_std
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
// TODO it might worth re-investigating the suitability of this type on Windows.
|
||||
|
||||
use super::{fd, AsFile};
|
||||
use crate::handle::{Fdflags, Filetype, Handle, HandleRights, Rights, RightsExt, Size};
|
||||
use crate::handle::{Fdflags, Filestat, Filetype, Handle, HandleRights, Rights, RightsExt, Size};
|
||||
use crate::sandboxed_tty_writer::SandboxedTTYWriter;
|
||||
use crate::{Error, Result};
|
||||
use std::any::Any;
|
||||
@@ -65,6 +65,9 @@ impl Handle for Stdin {
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
fn filestat_get(&self) -> Result<Filestat> {
|
||||
fd::filestat_get(&*self.as_file()?)
|
||||
}
|
||||
fn read_vectored(&self, iovs: &mut [io::IoSliceMut]) -> Result<usize> {
|
||||
let nread = io::stdin().read_vectored(iovs)?;
|
||||
Ok(nread)
|
||||
@@ -111,6 +114,9 @@ impl Handle for Stdout {
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
fn filestat_get(&self) -> Result<Filestat> {
|
||||
fd::filestat_get(&*self.as_file()?)
|
||||
}
|
||||
fn write_vectored(&self, iovs: &[io::IoSlice]) -> Result<usize> {
|
||||
// lock for the duration of the scope
|
||||
let stdout = io::stdout();
|
||||
@@ -165,6 +171,9 @@ impl Handle for Stderr {
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
fn filestat_get(&self) -> Result<Filestat> {
|
||||
fd::filestat_get(&*self.as_file()?)
|
||||
}
|
||||
fn write_vectored(&self, iovs: &[io::IoSlice]) -> Result<usize> {
|
||||
// Always sanitize stderr, even if it's not directly connected to a tty,
|
||||
// because stderr is meant for diagnostics rather than binary output,
|
||||
|
||||
@@ -9,7 +9,8 @@ pub(crate) mod poll;
|
||||
pub(crate) mod stdio;
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(target_os = "linux")] {
|
||||
if #[cfg(any(target_os = "linux",
|
||||
target_os = "android"))] {
|
||||
mod linux;
|
||||
use linux as sys_impl;
|
||||
} else if #[cfg(target_os = "emscripten")] {
|
||||
|
||||
Reference in New Issue
Block a user