From: Zdeněk Salvet Date: Thu, 6 Apr 2006 08:00:25 +0000 (+0000) Subject: Fix multiple typing bugs that can lead to endless looping, X-Git-Tag: gridsite-core_R_1_1_19~85 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=5ee9dab3082879106ac39bb789662ecbb3beef66;p=jra1mw.git Fix multiple typing bugs that can lead to endless looping, correct ambiguity of nwrite() return value. --- diff --git a/org.glite.security.proxyrenewal/src/common.c b/org.glite.security.proxyrenewal/src/common.c index 7b3df64..74495fd 100644 --- a/org.glite.security.proxyrenewal/src/common.c +++ b/org.glite.security.proxyrenewal/src/common.c @@ -6,7 +6,7 @@ static int nread(int sock, struct timeval *to, char *buf, size_t buf_len, size_t *read_len) { - size_t count; + int count; size_t remain = buf_len; char *cbuf = buf; fd_set fds; @@ -62,11 +62,11 @@ end: return ret; } -static size_t +static int nwrite(int sock, struct timeval *to, const char *buf, size_t buf_len) { const char *cbuf = buf; - size_t count; + int count; size_t remain = buf_len; fd_set fds; struct timeval timeout,before,after; @@ -99,7 +99,7 @@ nwrite(int sock, struct timeval *to, const char *buf, size_t buf_len) cbuf += count; remain -= count; } - ret = buf_len; + ret = 0; end: if (to) { @@ -156,15 +156,16 @@ int edg_wlpr_Write(int sock, struct timeval *timeout, char *buf, size_t buf_len) { unsigned char length[4]; + int ret; length[0] = (buf_len >> 24) & 0xFF; length[1] = (buf_len >> 16) & 0xFF; length[2] = (buf_len >> 8) & 0xFF; length[3] = (buf_len >> 0) & 0xFF; - if (nwrite(sock, timeout, length, 4) != 4 || - nwrite(sock, timeout, buf, buf_len) != buf_len) - return errno; + if ((ret = nwrite(sock, timeout, length, 4)) != 0 || + (ret = nwrite(sock, timeout, buf, buf_len)) != 0) { + return ret; return 0; }