summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-04-24 13:26:52 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-04-24 13:26:52 +0000
commitbf5a03cc0b46ed428df573eff52d694cb56d07da (patch)
tree1e29d6c0e70c919fa9ee1ef37a5691c3b713da33 /src/libs
parentca621337314666acf19b55f24a802e9e3fc2703d (diff)
downloadzabbix-bf5a03cc0b46ed428df573eff52d694cb56d07da.tar.gz
zabbix-bf5a03cc0b46ed428df573eff52d694cb56d07da.tar.xz
zabbix-bf5a03cc0b46ed428df573eff52d694cb56d07da.zip
- fixed uname for WinXX (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@4058 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/zbxsysinfo/common/system.c20
-rw-r--r--src/libs/zbxwin32/perfmon.c7
2 files changed, 19 insertions, 8 deletions
diff --git a/src/libs/zbxsysinfo/common/system.c b/src/libs/zbxsysinfo/common/system.c
index aa8d00d6..8119ed83 100644
--- a/src/libs/zbxsysinfo/common/system.c
+++ b/src/libs/zbxsysinfo/common/system.c
@@ -54,7 +54,10 @@ int SYSTEM_UNAME(const char *cmd, const char *param, unsigned flags, AGENT_R
#if defined(_WINDOWS)
DWORD dwSize;
char *cpuType,
- computerName[MAX_COMPUTERNAME_LENGTH],
+
+ /* NOTE: The buffer size should be large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters.*/
+ computerName[MAX_COMPUTERNAME_LENGTH + 1],
+
osVersion[256],
buffer[MAX_STRING_LEN];
SYSTEM_INFO
@@ -62,8 +65,10 @@ int SYSTEM_UNAME(const char *cmd, const char *param, unsigned flags, AGENT_R
OSVERSIONINFO
versionInfo;
- dwSize = MAX_COMPUTERNAME_LENGTH;
- GetComputerName(computerName,&dwSize);
+ dwSize = sizeof(computerName);
+
+ if( 0 == GetComputerName(computerName,&dwSize))
+ computerName[0] = '\0';
versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&versionInfo);
@@ -165,11 +170,14 @@ int SYSTEM_HOSTNAME(const char *cmd, const char *param, unsigned flags, AGEN
{
#if defined(_WINDOWS)
DWORD dwSize;
- char buffer[MAX_COMPUTERNAME_LENGTH];
+
+ /* NOTE: The buffer size should be large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters.*/
+ char buffer[MAX_COMPUTERNAME_LENGTH + 1];
- dwSize = MAX_COMPUTERNAME_LENGTH;
- GetComputerName(buffer, &dwSize);
+ dwSize = sizeof(buffer);
+ if( 0 == GetComputerName(buffer, &dwSize) )
+ buffer[0] = '\0';
SET_STR_RESULT(result, strdup(buffer));
diff --git a/src/libs/zbxwin32/perfmon.c b/src/libs/zbxwin32/perfmon.c
index 24225f66..2b1ca83d 100644
--- a/src/libs/zbxwin32/perfmon.c
+++ b/src/libs/zbxwin32/perfmon.c
@@ -32,7 +32,9 @@ char *GetCounterName(DWORD index)
{
PERFCOUNTER *counterName;
DWORD dwSize;
- char hostname[MAX_COMPUTERNAME_LENGTH];
+
+ /* NOTE: The buffer size should be large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters.*/
+ char hostname[MAX_COMPUTERNAME_LENGTH +1 + 2]; /* +2 for '\\' symbols */
counterName = PerfCounterList;
while(counterName!=NULL)
@@ -50,9 +52,10 @@ char *GetCounterName(DWORD index)
hostname[0] = hostname[1] = '\\';
dwSize = sizeof(hostname) - 2;
- if(GetComputerName(hostname + 2, &dwSize)==0)
+ if( 0 == GetComputerName(hostname + 2, &dwSize) )
{
zabbix_log(LOG_LEVEL_ERR, "GetComputerName failed: %s", strerror_from_system(GetLastError()));
+ return "UnknownPerformanceCounter";
}
dwSize = sizeof(counterName->name);