summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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;