summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorsasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-13 09:26:11 +0000
committersasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-11-13 09:26:11 +0000
commitb2f4127653d868e987df2140b9ad992bcdd558d3 (patch)
tree434eaba341eaf111203ac9106f210524ee8d6d14 /src/libs
parentbe1f5b737ec9d68ef97ab716cf982d9445e64f20 (diff)
downloadzabbix-b2f4127653d868e987df2140b9ad992bcdd558d3.tar.gz
zabbix-b2f4127653d868e987df2140b9ad992bcdd558d3.tar.xz
zabbix-b2f4127653d868e987df2140b9ad992bcdd558d3.zip
- [NTT-29] zabbix_server process on master node terminated unexpectedly
[svn merge -r4999:5000 svn://svn.zabbix.com/branches/1.4.j] git-svn-id: svn://svn.zabbix.com/trunk@5001 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/zbxcommon/str.c29
1 files changed, 11 insertions, 18 deletions
diff --git a/src/libs/zbxcommon/str.c b/src/libs/zbxcommon/str.c
index 4b7738d3..227b48dc 100644
--- a/src/libs/zbxcommon/str.c
+++ b/src/libs/zbxcommon/str.c
@@ -260,10 +260,9 @@ void __zbx_zbx_snprintf_alloc(char **str, int *alloc_len, int *offset, int max_l
va_start(args, fmt);
- if(*offset + max_len >= *alloc_len)
- {
- *str = zbx_realloc(*str, (*alloc_len)+2*max_len);
- *alloc_len += 2*max_len;
+ if (*offset + max_len >= *alloc_len) {
+ *alloc_len += 2 * max_len;
+ *str = zbx_realloc(*str, *alloc_len);
}
*offset += zbx_vsnprintf(*str+*offset, max_len, fmt, args);
@@ -1229,20 +1228,19 @@ int zbx_binary2hex(const u_char *input, int ilen, char **output, int *olen)
int zbx_hex2binary(char *io)
{
const char *i = io;
- u_char *o = (u_char *)io, c;
- int len = 0;
+ char *o = io;
+ u_char c;
assert(io);
while(*i != '\0') {
c = zbx_hex2num( *i++ ) << 4;
c += zbx_hex2num( *i++ );
- *o++ = c;
- len++;
+ *o++ = (char)c;
}
*o = '\0';
- return len;
+ return o - io;
}
#ifdef HAVE_POSTGRESQL
@@ -1412,19 +1410,14 @@ char *zbx_get_next_field(const char *line, char **output, int *olen, char separa
int flen;
ret = strchr(line, separator);
- if(ret)
- {
+ if (ret) {
flen = ret-line;
ret++;
- }
- else
- {
+ } else
flen = strlen(line);
- }
- if(*olen < flen)
- {
- *olen = flen;
+ if (*olen < flen + 1) {
+ *olen = flen * 2;
*output = zbx_realloc(*output, *olen);
}
memcpy(*output, line, flen);