curl: don't pass semicolons when parsing Content-Disposition

Test 1422 updated to verify.

Closes #1964
This commit is contained in:
Kristiyan Tsaklev 2017-10-07 17:47:11 +03:00 committed by Daniel Stenberg
parent 06cb8adde2
commit c95c92da75
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 7 additions and 10 deletions

View File

@ -161,8 +161,13 @@ static char *parse_filename(const char *ptr, size_t len)
else
stop = ';';
/* scan for the end letter and stop there */
q = strchr(p, stop);
if(q)
*q = '\0';
/* if the filename contains a path, only use filename portion */
q = strrchr(copy, '/');
q = strrchr(p, '/');
if(q) {
p = q + 1;
if(!*p) {
@ -183,14 +188,6 @@ static char *parse_filename(const char *ptr, size_t len)
}
}
/* scan for the end letter and stop there */
for(q = p; *q; ++q) {
if(*q == stop) {
*q = '\0';
break;
}
}
/* make sure the file name doesn't end in \r or \n */
q = strchr(p, '\r');
if(q)

View File

@ -16,7 +16,7 @@ Server: test-server/fake
Content-Length: 0
Connection: close
Content-Type: text/html
Content-Disposition: filename=name1422; charset=funny; option=strange
Content-Disposition: filename=name1422; charset=funny; option=str//nge
</data>
</reply>