diff options
Diffstat (limited to 'cpp/src/Ice/Instance.cpp')
-rw-r--r-- | cpp/src/Ice/Instance.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp index 2e6ea32af08..35b8a7bbc28 100644 --- a/cpp/src/Ice/Instance.cpp +++ b/cpp/src/Ice/Instance.cpp @@ -1017,8 +1017,9 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi struct passwd pwbuf; vector<char> buffer(4096); // 4KB initial buffer struct passwd *pw; - int err = getpwnam_r(newUser.c_str(), &pwbuf, &buffer[0], buffer.size(), &pw); - while(err == ERANGE && buffer.size() < 1024 * 1024) // Limit buffer to 1MB + int err; + while((err = getpwnam_r(newUser.c_str(), &pwbuf, &buffer[0], buffer.size(), &pw)) == ERANGE && + buffer.size() < 1024 * 1024) // Limit buffer to 1M { buffer.resize(buffer.size() * 2); } |