From 5695c4db861e3c3f200005ae428c89cd3ad6ccdb Mon Sep 17 00:00:00 2001
From: Yang Tse <yangsita@gmail.com>
Date: Wed, 24 Feb 2010 00:03:06 +0000
Subject: [PATCH] fix compiler warning

---
 lib/escape.c | 7 ++++---
 lib/ftp.c    | 5 +++--
 lib/ssh.c    | 6 +++---
 lib/url.c    | 3 ++-
 4 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/lib/escape.c b/lib/escape.c
index 3164f908ab..e28e02099f 100644
--- a/lib/escape.c
+++ b/lib/escape.c
@@ -35,6 +35,7 @@
 /* urldata.h and easyif.h are included for Curl_convert_... prototypes */
 #include "urldata.h"
 #include "easyif.h"
+#include "warnless.h"
 
 #define _MPRINTF_REPLACE /* use our functions only */
 #include <curl/mprintf.h>
@@ -152,7 +153,7 @@ char *curl_easy_unescape(CURL *handle, const char *string, int length,
   char *ns = malloc(alloc);
   unsigned char in;
   int strindex=0;
-  long hex;
+  unsigned long hex;
 
 #ifndef CURL_DOES_CONVERSIONS
   /* avoid compiler warnings */
@@ -171,9 +172,9 @@ char *curl_easy_unescape(CURL *handle, const char *string, int length,
       hexstr[1] = string[2];
       hexstr[2] = 0;
 
-      hex = strtol(hexstr, &ptr, 16);
+      hex = strtoul(hexstr, &ptr, 16);
 
-      in = (unsigned char)hex; /* this long is never bigger than 255 anyway */
+      in = curlx_ultouc(hex); /* this long is never bigger than 255 anyway */
 
 #ifdef CURL_DOES_CONVERSIONS
 /* escape sequences are always in ASCII so convert them on non-ASCII hosts */
diff --git a/lib/ftp.c b/lib/ftp.c
index 87d5cafa37..85419009eb 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -91,6 +91,7 @@
 #include "url.h"
 #include "rawstr.h"
 #include "speedcheck.h"
+#include "warnless.h"
 
 #define _MPRINTF_REPLACE /* use our functions only */
 #include <curl/mprintf.h>
@@ -759,9 +760,9 @@ static CURLcode ftp_state_use_port(struct connectdata *conn,
     /* parse the port */
     if( ip_end != NULL ) {
       if((port_start = strchr(ip_end, ':')) != NULL) {
-        port_min = (unsigned short)strtol(port_start+1, NULL, 10);
+        port_min = curlx_ultous(strtoul(port_start+1, NULL, 10));
         if((port_sep = strchr(port_start, '-')) != NULL) {
-          port_max = (unsigned short)strtol(port_sep + 1, NULL, 10);
+          port_max = curlx_ultous(strtoul(port_sep + 1, NULL, 10));
         }
         else
           port_max = port_min;
diff --git a/lib/ssh.c b/lib/ssh.c
index b6fc76bfc3..a45ba3c2af 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -1212,7 +1212,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
 
       /* Now set the new attributes... */
       if(curl_strnequal(sshc->quote_item->data, "chgrp", 5)) {
-        sshc->quote_attrs.gid = strtol(sshc->quote_path1, NULL, 10);
+        sshc->quote_attrs.gid = strtoul(sshc->quote_path1, NULL, 10);
         sshc->quote_attrs.flags = LIBSSH2_SFTP_ATTR_UIDGID;
         if(sshc->quote_attrs.gid == 0 && !ISDIGIT(sshc->quote_path1[0])) {
           Curl_safefree(sshc->quote_path1);
@@ -1226,7 +1226,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
         }
       }
       else if(curl_strnequal(sshc->quote_item->data, "chmod", 5)) {
-        sshc->quote_attrs.permissions = strtol(sshc->quote_path1, NULL, 8);
+        sshc->quote_attrs.permissions = strtoul(sshc->quote_path1, NULL, 8);
         sshc->quote_attrs.flags = LIBSSH2_SFTP_ATTR_PERMISSIONS;
         /* permissions are octal */
         if(sshc->quote_attrs.permissions == 0 &&
@@ -1242,7 +1242,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
         }
       }
       else if(curl_strnequal(sshc->quote_item->data, "chown", 5)) {
-        sshc->quote_attrs.uid = strtol(sshc->quote_path1, NULL, 10);
+        sshc->quote_attrs.uid = strtoul(sshc->quote_path1, NULL, 10);
         sshc->quote_attrs.flags = LIBSSH2_SFTP_ATTR_UIDGID;
         if(sshc->quote_attrs.uid == 0 && !ISDIGIT(sshc->quote_path1[0])) {
           Curl_safefree(sshc->quote_path1);
diff --git a/lib/url.c b/lib/url.c
index c67e8a6a77..887c06a844 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -120,6 +120,7 @@ void idn_free (void *ptr); /* prototype from idn-free.h, not provided by
 #include "easyif.h"
 #include "speedcheck.h"
 #include "rawstr.h"
+#include "warnless.h"
 
 /* And now for the protocols */
 #include "ftp.h"
@@ -4267,7 +4268,7 @@ static CURLcode parse_remote_port(struct SessionHandle *data,
       }
 
       *portptr = '\0'; /* cut off the name there */
-      conn->remote_port = (unsigned short)port;
+      conn->remote_port = curlx_ultous(port);
     }
   }
   return CURLE_OK;
-- 
GitLab