diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-04-24 13:26:52 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-04-24 13:26:52 +0000 |
| commit | bf5a03cc0b46ed428df573eff52d694cb56d07da (patch) | |
| tree | 1e29d6c0e70c919fa9ee1ef37a5691c3b713da33 /src/libs | |
| parent | ca621337314666acf19b55f24a802e9e3fc2703d (diff) | |
| download | zabbix-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.c | 20 | ||||
| -rw-r--r-- | src/libs/zbxwin32/perfmon.c | 7 |
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); |
