about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-08-02 09:41:17 +0000
committerbors <bors@rust-lang.org>2020-08-02 09:41:17 +0000
commit1e9913807841153729f92e438e6189184cbf561f (patch)
tree88bcbb799bfd06a68e7fe83a299f73fa4a41a4dc
parent12799ad60ca66b664699a0145f5ac5ccc399d4b8 (diff)
parent4c851792ac28c6fb09828a036b7fe3d4e1707033 (diff)
downloadrust-1e9913807841153729f92e438e6189184cbf561f.tar.gz
rust-1e9913807841153729f92e438e6189184cbf561f.zip
Auto merge of #74972 - second-state:wasi-right-fix, r=KodrAus
Fix std::fs::File::metadata permission on WASI target

Previously `std::fs::File::metadata` on wasm32-wasi would call `fd_filestat_get`
to get metadata associated with fd, but that fd is opened without
RIGHTS_FD_FILESTAT_GET right, so it will failed on correctly implemented WASI
environment.

This change instead to add the missing rights when opening an fd.
-rw-r--r--library/std/src/sys/wasi/fs.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/library/std/src/sys/wasi/fs.rs b/library/std/src/sys/wasi/fs.rs
index 2eed9e436a9..6782d845bb0 100644
--- a/library/std/src/sys/wasi/fs.rs
+++ b/library/std/src/sys/wasi/fs.rs
@@ -331,6 +331,7 @@ impl OpenOptions {
         // FIXME: some of these should probably be read-only or write-only...
         base |= wasi::RIGHTS_FD_ADVISE;
         base |= wasi::RIGHTS_FD_FDSTAT_SET_FLAGS;
+        base |= wasi::RIGHTS_FD_FILESTAT_GET;
         base |= wasi::RIGHTS_FD_FILESTAT_SET_TIMES;
         base |= wasi::RIGHTS_FD_SEEK;
         base |= wasi::RIGHTS_FD_SYNC;