diff options
| author | Bill Middlecamp <Bill.Middlecamp@quantum.com> | 2013-04-09 22:18:33 +0200 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2013-04-09 22:18:33 +0200 | 
| commit | e0fb2d86c9f789131588a7cc93e9e881d601cecd (patch) | |
| tree | 837147a6b8390524d88b2ca4d602d085c25909e9 | |
| parent | 658ec97055456f739222aa2a5719a4d403ced99a (diff) | |
FTP: handle "rubbish" in front of directory name in 257 responses
When doing PWD, there's a 257 response which apparently some servers
prefix with a comment before the path instead of after it as is
otherwise the norm.
Failing to parse this, several otherwise legitimate use cases break.
Bug: http://curl.haxx.se/mail/lib-2013-04/0113.html
| -rw-r--r-- | lib/ftp.c | 10 | 
1 files changed, 8 insertions, 2 deletions
| @@ -2871,13 +2871,19 @@ static CURLcode ftp_statemach_act(struct connectdata *conn)            return CURLE_OUT_OF_MEMORY;          /* Reply format is like -           257<space>"<directory-name>"<space><commentary> and the RFC959 -           says +           257<space>[rubbish]"<directory-name>"<space><commentary> and the +           RFC959 says             The directory name can contain any character; embedded             double-quotes should be escaped by double-quotes (the             "quote-doubling" convention).          */ + +        /* scan for the first double-quote for non-standard responses */ +        while(ptr < &data->state.buffer[sizeof(data->state.buffer)] +              && *ptr != '\n' && *ptr != '\0' && *ptr != '"') +          ptr++; +          if('\"' == *ptr) {            /* it started good */            ptr++; | 
