diff --git a/src/OSspecific/MSwindows/MSwindows.C b/src/OSspecific/MSwindows/MSwindows.C index 30fb55792f446ebd29941765b459de2cceff4e43..4516c6a7fbe1d0a0ad9626e6aa0650dea499ef26 100644 --- a/src/OSspecific/MSwindows/MSwindows.C +++ b/src/OSspecific/MSwindows/MSwindows.C @@ -350,12 +350,16 @@ Foam::string Foam::getEnv(const std::string& envName) { std::string env; - const auto len = ::GetEnvironmentVariable(envName.c_str(), nullptr, 0); + auto len = ::GetEnvironmentVariable(envName.c_str(), nullptr, 0); + // len [return] = size with trailing nul char, or zero on failure if (len) { - env.resize(len+1); - ::GetEnvironmentVariable(envName.c_str(), &(env[0]), len+1); + env.resize(len); + + // len [in] = size with trailing nul char + // len [return] = size without trailing nul char + len = ::GetEnvironmentVariable(envName.c_str(), &(env[0]), len); env.resize(len); return fileName::validate(env); @@ -442,16 +446,18 @@ Foam::fileName Foam::home(const std::string& userName) Foam::fileName Foam::cwd() { string path; - const DWORD len = ::GetCurrentDirectory(0, nullptr); + auto len = ::GetCurrentDirectory(0, nullptr); + // len [return] = size with trailing nul char, or zero on failure if (len) { - path.resize(len+1); + path.resize(len); - ::GetCurrentDirectory(len+1, &(path[0])); + // len [in] = size with trailing nul char + // len [return] = size without trailing nul char + len = ::GetCurrentDirectory(len, &(path[0])); path.resize(len); - return fileName::validate(path); }