summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-11-08 18:15:39 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-11-08 18:15:39 +0100
commitc51cbe279921485e0ca19085d9e322c07508ced0 (patch)
tree50a3387ddf6fb132e4629d1cd5e4ff6a9e63c022
parent17d6905ea16c6bff5647ae698c1591bd32c563be (diff)
parent1a4f9bd0afd96f815a9eaba725cbfcdb11b19f81 (diff)
downloadmullvadvpn-c51cbe279921485e0ca19085d9e322c07508ced0.tar.xz
mullvadvpn-c51cbe279921485e0ca19085d9e322c07508ced0.zip
Merge branch 'win-ignore-misconfigured-adapters'
-rw-r--r--CHANGELOG.md4
-rw-r--r--dist-assets/windows/installer.nsh5
-rw-r--r--windows/driverlogic/src/driverlogic.cpp12
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;