mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
curl: don't pass semicolons when parsing Content-Disposition
Test 1422 updated to verify. Closes #1964
This commit is contained in:
parent
06cb8adde2
commit
c95c92da75
@ -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)
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user