form/mime: field names are not allowed to contain zero-valued bytes.

Also suppress length argument of curl_mime_name() (names are always
zero-terminated).
This commit is contained in:
Patrick Monnerat 2017-09-22 01:08:29 +01:00
parent fa9482ab09
commit ee56fdb691
21 changed files with 94 additions and 102 deletions

View file

@ -733,7 +733,7 @@ int formparse(struct OperationConfig *config,
}
/* Set part name. */
if(name && curl_mime_name(part, name, CURL_ZERO_TERMINATED)) {
if(name && curl_mime_name(part, name)) {
warnf(config->global, "curl_mime_name failed!\n");
Curl_safefree(contents);
return 31;

View file

@ -525,20 +525,10 @@ static CURLcode libcurl_generate_mime(curl_mime *mime, int *mimeno)
if(part->name) {
Curl_safefree(escaped);
escaped = c_escape(part->name, part->namesize);
escaped = c_escape(part->name, CURL_ZERO_TERMINATED);
if(!escaped)
return CURLE_OUT_OF_MEMORY;
/* Are there any nul byte in name? */
for(cp = part->name; *cp; cp++)
;
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);
CODE2("curl_mime_name(part%d, \"%s\");", *mimeno, escaped);
}
if(part->mimetype) {