diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-09-22 14:08:10 +0200 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-09-22 14:08:10 +0200 |
| commit | 7af0203100014b4fbc8307f2dfefa877748fa275 (patch) | |
| tree | 19a4a725378dd7796e9f19b79e697757ea7f276b /mullvad-daemon/src | |
| parent | 91d5df9f583ff77cbd7dbacc0f3ee19c01899a5a (diff) | |
| parent | e64ff1d3dc921162efdb873fec9d51e9845edcd9 (diff) | |
| download | mullvadvpn-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.rs | 18 |
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(()) } |
