diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-11-08 18:15:39 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-11-08 18:15:39 +0100 |
| commit | c51cbe279921485e0ca19085d9e322c07508ced0 (patch) | |
| tree | 50a3387ddf6fb132e4629d1cd5e4ff6a9e63c022 | |
| parent | 17d6905ea16c6bff5647ae698c1591bd32c563be (diff) | |
| parent | 1a4f9bd0afd96f815a9eaba725cbfcdb11b19f81 (diff) | |
| download | mullvadvpn-c51cbe279921485e0ca19085d9e322c07508ced0.tar.xz mullvadvpn-c51cbe279921485e0ca19085d9e322c07508ced0.zip | |
Merge branch 'win-ignore-misconfigured-adapters'
| -rw-r--r-- | CHANGELOG.md | 4 | ||||
| -rw-r--r-- | dist-assets/windows/installer.nsh | 5 | ||||
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 12 |
3 files changed, 14 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d6acfb735f..ced52b7ffb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,10 @@ Line wrap the file at 100 chars. Th #### Linux - Remove last filesystem dependency of early boot blocking unit. +#### Windows +- Ignore adapters that have no valid GUID when removing obsolete Wintun interfaces during install. + Previously, the installer would abort. + ### Changed - Update Electron from 19.0.13 to 21.1.1. diff --git a/dist-assets/windows/installer.nsh b/dist-assets/windows/installer.nsh index 444846a3a0..6bb3b5156a 100644 --- a/dist-assets/windows/installer.nsh +++ b/dist-assets/windows/installer.nsh @@ -796,11 +796,6 @@ ${ExtractDriverlogic} ${RemoveAbandonedWintunAdapter} - ${If} $R0 != 0 - MessageBox MB_OK "$R0" - Goto customInstall_abort_installation - ${EndIf} - ${RemoveSplitTunnelDriver} ${If} $R0 != 0 diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index 713afbe9a6..7cd8cf5f51 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -186,9 +186,17 @@ ReturnCode CommandWintunDeleteAbandonedDevice(const std::vector<std::wstring> &a { static wchar_t WintunMullvadAdapter[] = L"{AFE43773-E1F8-4EBB-8536-576AB86AFE9A}"; - auto candidateAdapterGuid = GetDeviceNetCfgInstanceId(deviceInfoSet, deviceInfo); + try + { + auto candidateAdapterGuid = GetDeviceNetCfgInstanceId(deviceInfoSet, deviceInfo); - return 0 == _wcsicmp(candidateAdapterGuid.c_str(), WintunMullvadAdapter); + return 0 == _wcsicmp(candidateAdapterGuid.c_str(), WintunMullvadAdapter); + } + catch (...) + { + // Skip adapters for which we cannot obtain NetCfgInstanceId. + return false; + } }); EnumeratedDevice device; |
