]> granicus.if.org Git - curl/commitdiff
mime: fix signed/unsigned conversions.
authorPatrick Monnerat <patrick@monnerat.net>
Sun, 3 Sep 2017 16:48:15 +0000 (17:48 +0100)
committerPatrick Monnerat <patrick@monnerat.net>
Sun, 3 Sep 2017 16:51:18 +0000 (17:51 +0100)
Use and generate CURL_ZERO_TERMINATED in curl tool and tests.

src/tool_setopt.c
tests/data/test1404
tests/libtest/lib643.c

index 967241d6450ba5bdd339b86f8f82be19dbef6b8a..b0f3198148c0e67253526089599ac3ff7740c427 100644 (file)
@@ -487,8 +487,12 @@ static CURLcode libcurl_generate_mime(curl_mime *mime, int *mimeno)
           Curl_safefree(data);
         if(!escaped)
           return CURLE_OUT_OF_MEMORY;
-        CODE3("curl_mime_data(part%d, \"%s\", %" CURL_FORMAT_CURL_OFF_T ");",
-                              *mimeno, escaped, size);
+        if(size >= 0)
+          CODE3("curl_mime_data(part%d, \"%s\", %" CURL_FORMAT_CURL_OFF_T ");",
+                                *mimeno, escaped, size);
+        else
+          CODE2("curl_mime_data(part%d, \"%s\", CURL_ZERO_TERMINATED);",
+                                *mimeno, escaped);
         break;
       case MIMEKIND_MULTIPART:
         ret = libcurl_generate_mime(part->arg, &i);
@@ -515,12 +519,17 @@ static CURLcode libcurl_generate_mime(curl_mime *mime, int *mimeno)
         escaped = c_escape(part->name, part->namesize);
         if(!escaped)
           return CURLE_OUT_OF_MEMORY;
+        /* Are there any nul byte in name? */
         for(cp = part->name; *cp; cp++)
           ;
-        size = (cp == part->name + part->namesize)?
-               (curl_off_t) -1: (curl_off_t) part->namesize;
-        CODE3("curl_mime_name(part%d, \"%s\", %" CURL_FORMAT_CURL_OFF_T ");",
+        if(cp != part->name + part->namesize) {
+          size = (curl_off_t) part->namesize;
+          CODE3("curl_mime_name(part%d, \"%s\", %" CURL_FORMAT_CURL_OFF_T ");",
               *mimeno, escaped, size);
+        }
+        else
+          CODE2("curl_mime_name(part%d, \"%s\", CURL_ZERO_TERMINATED);",
+              *mimeno, escaped);
       }
 
       if(part->mimetype) {
index 60ed58a163f2836a97188e001cc88e04ea5c74f2..a3ec66ef78c2378b2589e824b970691381c07bae 100644 (file)
@@ -123,8 +123,8 @@ int main(int argc, char *argv[])
   curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
   mime1 = curl_mime_init(hnd);
   part1 = curl_mime_addpart(mime1);
-  curl_mime_data(part1, "value", -1);
-  curl_mime_name(part1, "name", -1);
+  curl_mime_data(part1, "value", CURL_ZERO_TERMINATED);
+  curl_mime_name(part1, "name", CURL_ZERO_TERMINATED);
   part1 = curl_mime_addpart(mime1);
   mime2 = curl_mime_init(hnd);
   part2 = curl_mime_addpart(mime2);
@@ -138,7 +138,7 @@ int main(int argc, char *argv[])
   slist1 = NULL;
   curl_mime_subparts(part1, mime2);
   mime2 = NULL;
-  curl_mime_name(part1, "file", -1);
+  curl_mime_name(part1, "file", CURL_ZERO_TERMINATED);
   curl_easy_setopt(hnd, CURLOPT_MIMEPOST, mime1);
   curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
   curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
index ea5a96740422a597faff990d0103c123e67d18c5..b2698f0768607c2d87a68dd53c8fe1d3733d90a6 100644 (file)
@@ -113,7 +113,7 @@ static int once(char *URL, bool oldstyle)
 
   /* Fill in the file upload part */
   if(oldstyle) {
-    res = curl_mime_name(part, "sendfile", -1);
+    res = curl_mime_name(part, "sendfile", CURL_ZERO_TERMINATED);
     if(!res)
       res = curl_mime_data_cb(part, datasize, read_callback,
                               NULL, NULL, &pooh);
@@ -122,7 +122,7 @@ static int once(char *URL, bool oldstyle)
   }
   else {
     /* new style */
-    res = curl_mime_name(part, "sendfile alternative", -1);
+    res = curl_mime_name(part, "sendfile alternative", CURL_ZERO_TERMINATED);
     if(!res)
       res = curl_mime_data_cb(part, datasize, read_callback,
                               NULL, NULL, &pooh);
@@ -151,7 +151,7 @@ static int once(char *URL, bool oldstyle)
     return TEST_ERR_MAJOR_BAD;
   }
   /* Fill in the file upload part */
-  res = curl_mime_name(part, "callbackdata", -1);
+  res = curl_mime_name(part, "callbackdata", CURL_ZERO_TERMINATED);
   if(!res)
     res = curl_mime_data_cb(part, datasize, read_callback,
                             NULL, NULL, &pooh2);
@@ -169,7 +169,7 @@ static int once(char *URL, bool oldstyle)
   }
 
   /* Fill in the filename field */
-  res = curl_mime_name(part, "filename", -1);
+  res = curl_mime_name(part, "filename", CURL_ZERO_TERMINATED);
   if(!res)
     res = curl_mime_data(part,
 #ifdef CURL_DOES_CONVERSIONS
@@ -179,7 +179,7 @@ static int once(char *URL, bool oldstyle)
 #else
                           "postit2.c",
 #endif
-                          -1);
+                          CURL_ZERO_TERMINATED);
 
   if(res)
     printf("curl_mime_xxx(3) = %s\n", curl_easy_strerror(res));
@@ -193,7 +193,7 @@ static int once(char *URL, bool oldstyle)
     curl_global_cleanup();
     return TEST_ERR_MAJOR_BAD;
   }
-  res = curl_mime_name(part, "submit", -1);
+  res = curl_mime_name(part, "submit", CURL_ZERO_TERMINATED);
   if(!res)
     res = curl_mime_data(part,
 #ifdef CURL_DOES_CONVERSIONS
@@ -203,7 +203,7 @@ static int once(char *URL, bool oldstyle)
 #else
                           "send",
 #endif
-                          -1);
+                          CURL_ZERO_TERMINATED);
 
   if(res)
     printf("curl_mime_xxx(4) = %s\n", curl_easy_strerror(res));
@@ -216,7 +216,7 @@ static int once(char *URL, bool oldstyle)
     curl_global_cleanup();
     return TEST_ERR_MAJOR_BAD;
   }
-  res = curl_mime_name(part, "somename", -1);
+  res = curl_mime_name(part, "somename", CURL_ZERO_TERMINATED);
   if(!res)
     res = curl_mime_filename(part, "somefile.txt");
   if(!res)