summaryrefslogtreecommitdiffhomepage
path: root/windows/driverlogic/src/driverlogic.cpp
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-02-24 15:57:20 +0100
committerDavid Lönnhager <david.l@mullvad.net>2021-02-26 12:52:21 +0100
commit07c9d41f188f273c7d50e47518969f414773add5 (patch)
tree1e129d14a693794cbb78a7a9b2fc05fc758c070f /windows/driverlogic/src/driverlogic.cpp
parent492b06e3066faaebc7544980fda09a6b76bfb256 (diff)
downloadmullvadvpn-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.cpp14
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());
}