Incorporated Zdenek's patch from HEAD that solves #16050 glite-security-proxyrenewal_R_1_0_18
authorDaniel Kouřil <kouril@ics.muni.cz>
Thu, 6 Apr 2006 10:01:21 +0000 (10:01 +0000)
committerDaniel Kouřil <kouril@ics.muni.cz>
Thu, 6 Apr 2006 10:01:21 +0000 (10:01 +0000)
(Fix multiple typing bugs that can lead to endless looping,
correct ambiguity of nwrite() return value.)

org.glite.security.proxyrenewal/project/version.properties
org.glite.security.proxyrenewal/src/common.c

index 86de735..1d894ad 100644 (file)
@@ -1,4 +1,4 @@
 
-module.version = 1.0.17
+module.version = 1.0.18
 module.age = 1
                                
index 7b3df64..86cfa4a 100644 (file)
@@ -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;
 }