tool_getparam.c: Fixed compilation warnings
authorSteve Holme <steve_holme@hotmail.com>
Sun, 23 Mar 2014 12:46:54 +0000 (12:46 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Thu, 22 May 2014 20:01:51 +0000 (21:01 +0100)
There is an implicit conversion from "unsigned long" to "long"

lib/warnless.c
lib/warnless.h
src/tool_getparam.c

index 778f098..8c130d3 100644 (file)
@@ -175,6 +175,25 @@ int curlx_ultosi(unsigned long ulnum)
 }
 
 /*
+** unsigned size_t to signed curl_off_t
+*/
+
+curl_off_t curlx_uztoso(size_t uznum)
+{
+#ifdef __INTEL_COMPILER
+#  pragma warning(push)
+#  pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+  DEBUGASSERT(uznum <= (size_t) CURL_MASK_SCOFFT);
+  return (curl_off_t)(uznum & (size_t) CURL_MASK_SCOFFT);
+
+#ifdef __INTEL_COMPILER
+#  pragma warning(pop)
+#endif
+}
+
+/*
 ** unsigned size_t to signed int
 */
 
index 33368d2..ad77d3c 100644 (file)
@@ -34,6 +34,8 @@ int curlx_ultosi(unsigned long ulnum);
 
 int curlx_uztosi(size_t uznum);
 
+curl_off_t curlx_uztoso(size_t uznum);
+
 unsigned long curlx_uztoul(size_t uznum);
 
 unsigned int curlx_uztoui(size_t uznum);
index 6d68c5b..9ac6ab2 100644 (file)
@@ -1239,7 +1239,7 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
            &-letter */
         char *oldpost = config->postfields;
         curl_off_t oldlen = config->postfieldsize;
-        curl_off_t newlen = oldlen + size + 2;
+        curl_off_t newlen = oldlen + curlx_uztoso(size) + 2;
         config->postfields = malloc((size_t)newlen);
         if(!config->postfields) {
           Curl_safefree(oldpost);
@@ -1257,7 +1257,7 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
       }
       else {
         config->postfields = postdata;
-        config->postfieldsize = size;
+        config->postfieldsize = curlx_uztoso(size);
       }
     }
     /*