diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-02-24 15:57:20 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-02-26 12:52:21 +0100 |
| commit | 07c9d41f188f273c7d50e47518969f414773add5 (patch) | |
| tree | 1e129d14a693794cbb78a7a9b2fc05fc758c070f /windows/driverlogic/src/driverlogic.cpp | |
| parent | 492b06e3066faaebc7544980fda09a6b76bfb256 (diff) | |
| download | mullvadvpn-07c9d41f188f273c7d50e47518969f414773add5.tar.xz mullvadvpn-07c9d41f188f273c7d50e47518969f414773add5.zip | |
Fix module path in driverlogic
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index acc601811b..4cd1a6640a 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -818,24 +818,24 @@ std::filesystem::path GetCurrentModulePath() SetLastError(ERROR_SUCCESS); - size_t nextCapacity = 256; + size_t nextCapacity = MAX_PATH; + DWORD writtenChars = 0; do { - pathBuffer.reserve(nextCapacity); - - const auto writtenChars = GetModuleFileNameW(nullptr, &pathBuffer[0], static_cast<DWORD>(pathBuffer.capacity())); + pathBuffer.resize(nextCapacity); + writtenChars = GetModuleFileNameW(nullptr, &pathBuffer[0], static_cast<DWORD>(pathBuffer.size())); if (0 == writtenChars) { THROW_WINDOWS_ERROR(GetLastError(), "GetModuleFileNameW"); } - pathBuffer.resize(writtenChars); - - nextCapacity = 2 * pathBuffer.capacity(); + nextCapacity = 2 * pathBuffer.size(); } while (ERROR_INSUFFICIENT_BUFFER == GetLastError()); + pathBuffer.resize(writtenChars); + return std::filesystem::path(pathBuffer.begin(), pathBuffer.end()); } |
