Use proper integer types when handling TLS exchanges
authorTobias Brunner <tobias@strongswan.org>
Fri, 22 Mar 2013 10:36:48 +0000 (11:36 +0100)
committerTobias Brunner <tobias@strongswan.org>
Fri, 22 Mar 2013 10:40:57 +0000 (11:40 +0100)
tls_t.build takes a size_t argument not a ssize_t.

src/libtls/tls_socket.c

index 58b5118..9a494c6 100644 (file)
@@ -156,7 +156,8 @@ METHOD(tls_application_t, build, status_t,
 static bool exchange(private_tls_socket_t *this, bool wr, bool block)
 {
        char buf[CRYPTO_BUF_SIZE], *pos;
-       ssize_t len, out;
+       ssize_t in, out;
+       size_t len;
        int round = 0, flags;
 
        for (round = 0; TRUE; round++)
@@ -214,8 +215,8 @@ static bool exchange(private_tls_socket_t *this, bool wr, bool block)
                                flags |= MSG_DONTWAIT;
                        }
                }
-               len = recv(this->fd, buf, sizeof(buf), flags);
-               if (len < 0)
+               in = recv(this->fd, buf, sizeof(buf), flags);
+               if (in < 0)
                {
                        if (errno == EAGAIN || errno == EWOULDBLOCK)
                        {
@@ -229,11 +230,11 @@ static bool exchange(private_tls_socket_t *this, bool wr, bool block)
                        }
                        return FALSE;
                }
-               if (len == 0)
+               if (in == 0)
                {       /* EOF */
                        return TRUE;
                }
-               switch (this->tls->process(this->tls, buf, len))
+               switch (this->tls->process(this->tls, buf, in))
                {
                        case NEED_MORE:
                                break;