summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-10-19 15:26:00 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-07-02 09:54:19 +0200
commit3d9d90c586bb6e19fe4401ca32c964d65664211f (patch)
tree49c4e9c44bc222e31eb5648de79852e0d334b9cd /talpid-core/src
parent79a0b1644323d5d913afba32b60fc3164cbcc367 (diff)
downloadmullvadvpn-3d9d90c586bb6e19fe4401ca32c964d65664211f.tar.xz
mullvadvpn-3d9d90c586bb6e19fe4401ca32c964d65664211f.zip
Workaround incorrect Windows error mapping for older rust libraries
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/split_tunnel/windows/driver.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/talpid-core/src/split_tunnel/windows/driver.rs b/talpid-core/src/split_tunnel/windows/driver.rs
index b43e566680..a539c84e3c 100644
--- a/talpid-core/src/split_tunnel/windows/driver.rs
+++ b/talpid-core/src/split_tunnel/windows/driver.rs
@@ -22,7 +22,7 @@ use winapi::{
in6addr::IN6_ADDR,
inaddr::IN_ADDR,
minwindef::{FALSE, TRUE},
- winerror::ERROR_IO_PENDING,
+ winerror::{ERROR_INVALID_PARAMETER, ERROR_IO_PENDING},
},
um::{
handleapi::CloseHandle,
@@ -422,6 +422,13 @@ fn build_process_tree() -> io::Result<Vec<ProcessInfo>> {
io::ErrorKind::PermissionDenied => continue,
// System idle or csrss process
io::ErrorKind::InvalidInput => continue,
+ io::ErrorKind::Other => {
+ // Old rust lib maps INVALID_PARAMETER to "Other"
+ if error.raw_os_error() == Some(ERROR_INVALID_PARAMETER as i32) {
+ continue;
+ }
+ Err(error)
+ }
_ => Err(error),
}
}