Use and generate CURL_ZERO_TERMINATED in curl tool and tests.
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);
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) {
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);
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);
/* 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);
}
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);
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);
}
/* 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
#else
"postit2.c",
#endif
- -1);
+ CURL_ZERO_TERMINATED);
if(res)
printf("curl_mime_xxx(3) = %s\n", curl_easy_strerror(res));
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
#else
"send",
#endif
- -1);
+ CURL_ZERO_TERMINATED);
if(res)
printf("curl_mime_xxx(4) = %s\n", curl_easy_strerror(res));
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)