diff options
| -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; |
