diff --git a/impl/getcomputername.cpp b/impl/getcomputername.cpp index 6b3d348ae5..c8a7c9719d 100644 --- a/impl/getcomputername.cpp +++ b/impl/getcomputername.cpp @@ -5,8 +5,8 @@ BOOL GetComputerName(LPTSTR name, LPDWORD len) { errno = 0; - - int host = gethostname(name, HOST_NAME_MAX); + size_t len2 = *len; + int host = gethostname(name, len2); if(host == 0) { return TRUE; diff --git a/tests/test-getcomputername.cpp b/tests/test-getcomputername.cpp index 207f964212..ffce53881b 100644 --- a/tests/test-getcomputername.cpp +++ b/tests/test-getcomputername.cpp @@ -1,5 +1,6 @@ #include #include "getcomputername.h" +#include TEST(GetComputerName,simple) { @@ -26,11 +27,13 @@ TEST(GetComputerName,simple) ASSERT_EQ(hostnameString,hostnameStringTest); } -TEST(GetComputerName,buffertosmall) +TEST(GetComputerName,bufferttoosmall) { char hostname[HOST_NAME_MAX]; std::string hostnameFunctionTest; DWORD hostSize = 0; BOOL getComputerName = GetComputerName(&hostnameFunctionTest[0], &hostSize); - ASSERT_TRUE(getComputerName != 0); + ASSERT_TRUE(getComputerName == 0); + char buffer[ 256 ]; + EXPECT_EQ(errno, ERROR_BUFFER_OVERFLOW); } \ No newline at end of file