From ee56fdb6910f6bf215eecede9e2e9bfc83cb5f29 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Fri, 22 Sep 2017 01:08:29 +0100 Subject: 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). --- src/tool_formparse.c | 2 +- src/tool_setopt.c | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/tool_formparse.c b/src/tool_formparse.c index 21cb2820b..4645a761e 100644 --- a/src/tool_formparse.c +++ b/src/tool_formparse.c @@ -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; diff --git a/src/tool_setopt.c b/src/tool_setopt.c index fd9bba4d6..fb2cb66d3 100644 --- a/src/tool_setopt.c +++ b/src/tool_setopt.c @@ -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) { -- cgit v1.2.3