From da4d4d7a21cc4c29b67a61d13dff4417ff6ecc11 Mon Sep 17 00:00:00 2001 From: Aaron Date: Thu, 30 Jul 2015 13:47:31 -0700 Subject: [PATCH] Added test for buffer not having enough space to write computer name --- src/impl/getcomputername.cpp | 4 ++-- src/tests/test-getcomputername.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/impl/getcomputername.cpp b/src/impl/getcomputername.cpp index 6b3d348ae..c8a7c9719 100644 --- a/src/impl/getcomputername.cpp +++ b/src/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/src/tests/test-getcomputername.cpp b/src/tests/test-getcomputername.cpp index 207f96421..ffce53881 100644 --- a/src/tests/test-getcomputername.cpp +++ b/src/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