From 9950bddee5f72af76b845dc63c6e9c93f6d7f38b Mon Sep 17 00:00:00 2001 From: Marcin Mielniczuk Date: Thu, 22 Aug 2019 14:00:25 +0200 Subject: [PATCH] Use safe casts in path_filestat_set_times on unix. --- src/sys/unix/hostcalls_impl/fs.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sys/unix/hostcalls_impl/fs.rs b/src/sys/unix/hostcalls_impl/fs.rs index a551f9cea7..8e8ea5dc3a 100644 --- a/src/sys/unix/hostcalls_impl/fs.rs +++ b/src/sys/unix/hostcalls_impl/fs.rs @@ -389,8 +389,8 @@ pub(crate) fn path_filestat_set_times( st_mtim: host::__wasi_timestamp_t, fst_flags: host::__wasi_fstflags_t, ) -> Result<()> { - use nix::sys::time::{TimeSpec, TimeValLike}; use nix::sys::stat::{utimensat, UtimensatFlags}; + use nix::sys::time::{TimeSpec, TimeValLike}; // FIXME this should be a part of nix fn timespec_omit() -> TimeSpec { @@ -424,7 +424,8 @@ pub(crate) fn path_filestat_set_times( }; let atim = if set_atim_now { - TimeSpec::nanoseconds(st_atim as i64) // fixme + let st_atim = st_atim.try_into().map_err(|_| host::__WASI_EOVERFLOW)?; + TimeSpec::nanoseconds(st_atim) } else if set_atim_now { timespec_now() } else { @@ -432,7 +433,8 @@ pub(crate) fn path_filestat_set_times( }; let mtim = if set_mtim { - TimeSpec::nanoseconds(st_mtim as i64) // fixme + let st_mtim = st_mtim.try_into().map_err(|_| host::__WASI_EOVERFLOW)?; + TimeSpec::nanoseconds(st_mtim) } else if set_atim_now { timespec_now() } else {