summary refs log tree commit diff
path: root/p9/src
diff options
context:
space:
mode:
authorChirantan Ekbote <chirantan@chromium.org>2018-06-21 12:14:41 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-06-27 22:07:22 -0700
commitd678784ae182bd816e00b69f5838f0665a79485c (patch)
treeb74d64597d6f68e8ea7ddc537c99d394374c4c60 /p9/src
parentf2fb37e669f75a8560310c501f04f1a06c74b5ff (diff)
downloadcrosvm-d678784ae182bd816e00b69f5838f0665a79485c.tar
crosvm-d678784ae182bd816e00b69f5838f0665a79485c.tar.gz
crosvm-d678784ae182bd816e00b69f5838f0665a79485c.tar.bz2
crosvm-d678784ae182bd816e00b69f5838f0665a79485c.tar.lz
crosvm-d678784ae182bd816e00b69f5838f0665a79485c.tar.xz
crosvm-d678784ae182bd816e00b69f5838f0665a79485c.tar.zst
crosvm-d678784ae182bd816e00b69f5838f0665a79485c.zip
p9: Fix file and directory creation mode
Don't allow clients to create files and directories that are writable by
anyone other than the user.  This is equivalent to having a umask of
022.

BUG=chromium:703939
TEST=change the umask in the container, mkdir, and see that it has 0755

Change-Id: I0622fcd89935512969bcd25a9b1fece1e72e1f38
Signed-off-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1112869
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'p9/src')
-rw-r--r--p9/src/server.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/p9/src/server.rs b/p9/src/server.rs
index 9c41941..8f1d649 100644
--- a/p9/src/server.rs
+++ b/p9/src/server.rs
@@ -541,7 +541,7 @@ impl Server {
             .append((lcreate.flags & P9_APPEND) != 0)
             .create_new((lcreate.flags & P9_EXCL) != 0)
             .custom_flags(custom_flags)
-            .mode(lcreate.mode & 0o777)
+            .mode(lcreate.mode & 0o755)
             .open(&path)?;
 
         fid.metadata = file.metadata()?;
@@ -842,7 +842,7 @@ impl Server {
 
         fs::DirBuilder::new()
             .recursive(false)
-            .mode(mkdir.mode & 0o777)
+            .mode(mkdir.mode & 0o755)
             .create(&newpath)?;
 
         Ok(Rmessage::Mkdir(Rmkdir {