summaryrefslogtreecommitdiffhomepage
path: root/mullvad-daemon/src
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2017-09-22 14:08:10 +0200
committerLinus Färnstrand <linus@mullvad.net>2017-09-22 14:08:10 +0200
commit7af0203100014b4fbc8307f2dfefa877748fa275 (patch)
tree19a4a725378dd7796e9f19b79e697757ea7f276b /mullvad-daemon/src
parent91d5df9f583ff77cbd7dbacc0f3ee19c01899a5a (diff)
parente64ff1d3dc921162efdb873fec9d51e9845edcd9 (diff)
downloadmullvadvpn-7af0203100014b4fbc8307f2dfefa877748fa275.tar.xz
mullvadvpn-7af0203100014b4fbc8307f2dfefa877748fa275.zip
Merge branch 'rpc-file-permission-lockdown'
Diffstat (limited to 'mullvad-daemon/src')
-rw-r--r--mullvad-daemon/src/rpc_info.rs18
1 files changed, 16 insertions, 2 deletions
diff --git a/mullvad-daemon/src/rpc_info.rs b/mullvad-daemon/src/rpc_info.rs
index 64dad4258b..13d354d9bb 100644
--- a/mullvad-daemon/src/rpc_info.rs
+++ b/mullvad-daemon/src/rpc_info.rs
@@ -47,9 +47,23 @@ pub fn remove() -> Result<()> {
}
fn open_file(path: &Path) -> io::Result<File> {
- OpenOptions::new()
+ let file = OpenOptions::new()
.write(true)
.truncate(true)
.create(true)
- .open(path)
+ .open(path)?;
+ set_rpc_file_permissions(&file)?;
+ Ok(file)
+}
+
+#[cfg(unix)]
+fn set_rpc_file_permissions(file: &File) -> io::Result<()> {
+ use std::os::unix::fs::PermissionsExt;
+ file.set_permissions(PermissionsExt::from_mode(0o644))
+}
+
+#[cfg(windows)]
+fn set_rpc_file_permissions(_file: &File) -> io::Result<()> {
+ // TODO(linus): Lock permissions correctly on Windows.
+ Ok(())
}