mirror of
https://github.com/curl/curl.git
synced 2026-07-24 10:57:16 +03:00
parse_filename: strip trailing CRs and LFs
The feature that uses the file name given in a Content-disposition: header didn't properly skip trailing carriage returns and linefeed characters from the end of the file name when it was given without quotes.
This commit is contained in:
parent
a5b7e3205d
commit
47dda4a1d4
1 changed files with 20 additions and 3 deletions
23
src/main.c
23
src/main.c
|
|
@ -4200,9 +4200,26 @@ parse_filename(char *ptr, size_t len)
|
|||
}
|
||||
}
|
||||
|
||||
q = strrchr(p, quote);
|
||||
if (q)
|
||||
*q = 0;
|
||||
if(quote) {
|
||||
/* if the file name started with a quote, then scan for the end quote and
|
||||
stop there */
|
||||
q = strrchr(p, quote);
|
||||
if (q)
|
||||
*q = 0;
|
||||
}
|
||||
else
|
||||
q = NULL; /* no start quote, so no end has been found */
|
||||
|
||||
if(!q) {
|
||||
/* make sure the file name doesn't end in \r or \n */
|
||||
q = strchr(p, '\r');
|
||||
if(q)
|
||||
*q = 0;
|
||||
|
||||
q = strchr(p, '\n');
|
||||
if(q)
|
||||
*q = 0;
|
||||
}
|
||||
|
||||
if (copy!=p)
|
||||
memmove(copy, p, strlen(p)+1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue