summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOdd Stranne <odd@mullvad.net>2019-12-05 22:31:16 +0100
committerOdd Stranne <odd@mullvad.net>2019-12-06 18:38:15 +0100
commit38b70c38abead26b5b636c5b4bfaa1a08cedf67b (patch)
tree0e1f50aa29a99e05840cc6fe9e21b93292164f79
parent76f75e56ad67c89b015d93d06a35156433ad0cec (diff)
downloadmullvadvpn-38b70c38abead26b5b636c5b4bfaa1a08cedf67b.tar.xz
mullvadvpn-38b70c38abead26b5b636c5b4bfaa1a08cedf67b.zip
Configure service SID info as 'unrestricted'
-rw-r--r--mullvad-daemon/src/system_service.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/mullvad-daemon/src/system_service.rs b/mullvad-daemon/src/system_service.rs
index beee45c5c7..73c5039b5b 100644
--- a/mullvad-daemon/src/system_service.rs
+++ b/mullvad-daemon/src/system_service.rs
@@ -15,8 +15,8 @@ use windows_service::{
service::{
Service, ServiceAccess, ServiceAction, ServiceActionType, ServiceControl, ServiceControlAccept,
ServiceDependency, ServiceErrorControl, ServiceExitCode, ServiceFailureActions,
- ServiceFailureResetPeriod, ServiceInfo, ServiceStartType, ServiceState, ServiceStatus,
- ServiceType,
+ ServiceFailureResetPeriod, ServiceInfo, ServiceSidType, ServiceStartType, ServiceState,
+ ServiceStatus, ServiceType,
},
service_control_handler::{self, ServiceControlHandlerResult, ServiceStatusHandle},
service_dispatcher,
@@ -290,7 +290,15 @@ pub fn install_service() -> Result<(), InstallError> {
.map_err(InstallError::CreateService)?;
service
.set_failure_actions_on_non_crash_failures(true)
- .map_err(InstallError::CreateService)
+ .map_err(InstallError::CreateService)?;
+
+ // Change how the service SID is added to the service process token.
+ // WireGuard needs this.
+ service
+ .set_config_service_sid_info(ServiceSidType::Unrestricted)
+ .map_err(InstallError::CreateService)?;
+
+ Ok(())
}
fn open_update_service(service_manager: &ServiceManager) -> Result<Service, windows_service::Error> {