diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-06-15 09:21:35 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-06-15 09:34:24 +0200 |
| commit | 6afde5381922d893a3513842d53340c9e8b2ec9d (patch) | |
| tree | a49dfb4d88a41208a694f64084ec01299dc25474 /windows/driverlogic/src/driverlogic.cpp | |
| parent | 9bd9c061022163a291d3dc7ae01f7589bfa60848 (diff) | |
| download | mullvadvpn-6afde5381922d893a3513842d53340c9e8b2ec9d.tar.xz mullvadvpn-6afde5381922d893a3513842d53340c9e8b2ec9d.zip | |
Only create the event if we need it in driverlogic
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index 450e08f821..989ee70cf5 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -244,16 +244,14 @@ bool TryGetRegistryValueTimeout( DWORD *dataSize ) { - HANDLE changeEvent = CreateEventW(nullptr, FALSE, FALSE, nullptr); - - if (nullptr == changeEvent) - { - THROW_WINDOWS_ERROR(GetLastError(), "CreateEventW"); - } + HANDLE changeEvent = nullptr; common::memory::ScopeDestructor scopeDestructor; scopeDestructor += [changeEvent]() { - CloseHandle(changeEvent); + if (nullptr != changeEvent) + { + CloseHandle(changeEvent); + } }; auto initialTime = std::chrono::steady_clock::now(); @@ -273,6 +271,16 @@ bool TryGetRegistryValueTimeout( THROW_WINDOWS_ERROR(status, "RegGetValueW"); } + if (nullptr == changeEvent) + { + changeEvent = CreateEventW(nullptr, FALSE, FALSE, nullptr); + + if (nullptr == changeEvent) + { + THROW_WINDOWS_ERROR(GetLastError(), "CreateEventW"); + } + } + // // Wait for the registry value to be created // |
