diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-10-19 15:26:00 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-07-02 09:54:19 +0200 |
| commit | 3d9d90c586bb6e19fe4401ca32c964d65664211f (patch) | |
| tree | 49c4e9c44bc222e31eb5648de79852e0d334b9cd /talpid-core/src | |
| parent | 79a0b1644323d5d913afba32b60fc3164cbcc367 (diff) | |
| download | mullvadvpn-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.rs | 9 |
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), } } |
