diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/inet_pton.c | 4 | ||||
-rw-r--r-- | lib/ssluse.c | 17 | ||||
-rw-r--r-- | lib/url.c | 4 |
3 files changed, 16 insertions, 9 deletions
diff --git a/lib/inet_pton.c b/lib/inet_pton.c index 26a13724f..285284fd1 100644 --- a/lib/inet_pton.c +++ b/lib/inet_pton.c @@ -221,8 +221,8 @@ inet_pton6(const char *src, unsigned char *dst) * Since some memmove()'s erroneously fail to handle * overlapping regions, we'll do the shift by hand. */ - const int n = tp - colonp; - int i; + const long n = tp - colonp; + long i; for (i = 1; i <= n; i++) { endp[- i] = colonp[n - i]; diff --git a/lib/ssluse.c b/lib/ssluse.c index 840fbc2c9..d0f5501fe 100644 --- a/lib/ssluse.c +++ b/lib/ssluse.c @@ -1644,9 +1644,16 @@ ossl_connect_step2(struct connectdata *conn, int sockindex) static int asn1_object_dump(ASN1_OBJECT *a, char *buf, size_t len) { - int i = i2t_ASN1_OBJECT(buf, len, a); - if (i >= (int)len) - return 1; /* too small buffer! */ + int i, ilen; + + if((ilen = (int)len) < 0) + return 1; /* buffer too big */ + + i = i2t_ASN1_OBJECT(buf, ilen, a); + + if(i >= ilen) + return 1; /* buffer too small */ + return 0; } @@ -2244,9 +2251,9 @@ ossl_connect_common(struct connectdata *conn, if(connssl->connecting_state == ssl_connect_2_reading || connssl->connecting_state == ssl_connect_2_writing) { - int writefd = ssl_connect_2_writing== + curl_socket_t writefd = ssl_connect_2_writing== connssl->connecting_state?sockfd:CURL_SOCKET_BAD; - int readfd = ssl_connect_2_reading== + curl_socket_t readfd = ssl_connect_2_reading== connssl->connecting_state?sockfd:CURL_SOCKET_BAD; while(1) { @@ -3176,13 +3176,13 @@ static CURLcode ParseURLAndFillConnection(struct SessionHandle *data, char *percent = strstr (conn->host.name, "%25"); if (percent) { char *endp; - unsigned int scope = strtoul (percent + 3, &endp, 10); + unsigned long scope = strtoul (percent + 3, &endp, 10); if (*endp == ']') { /* The address scope was well formed. Knock it out of the hostname. */ memmove(percent, endp, strlen(endp)+1); if (!data->state.this_is_a_follow) /* Don't honour a scope given in a Location: header */ - conn->scope = scope; + conn->scope = (unsigned int)scope; } else infof(data, "Invalid IPv6 address format\n"); } |