Tighten up a lot of casts from unsigned to int which are read by one
[sgt/putty] / unix / uxagentc.c
index 9f579cd..5734a7b 100644 (file)
@@ -75,13 +75,12 @@ static int agent_select_result(int fd, int event)
     }
     conn->retlen += ret;
     if (conn->retsize == 4 && conn->retlen == 4) {
-       conn->retsize = GET_32BIT(conn->retbuf);
+       conn->retsize = toint(GET_32BIT(conn->retbuf) + 4);
        if (conn->retsize <= 0) {
            conn->retbuf = NULL;
            conn->retlen = 0;
            goto done;
        }
-       conn->retsize += 4;
        assert(conn->retbuf == conn->sizebuf);
        conn->retbuf = snewn(conn->retsize, char);
        memcpy(conn->retbuf, conn->sizebuf, 4);