diff options
author | Zenju <zenju@gmx.de> | 2019-09-11 20:04:28 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-09-13 14:05:34 +0200 |
commit | acf1d2acd17b194966be41e848ffd48b02ecef0c (patch) | |
tree | 03e6259c4328d9130246883409ca72557315d134 | |
parent | 1ca91bcdb588dc6c25d345f2411fdba314433732 (diff) |
FTP: skip CWD to entry dir when target is absolute
Closes #4332
-rw-r--r-- | lib/ftp.c | 4 | ||||
-rw-r--r-- | tests/data/test1225 | 1 |
2 files changed, 3 insertions, 2 deletions
@@ -877,7 +877,9 @@ static CURLcode ftp_state_cwd(struct connectdata *conn) if((conn->data->set.ftp_filemethod == FTPFILE_NOCWD) && !ftpc->cwdcount) /* No CWD necessary */ result = ftp_state_mdtm(conn); - else if(conn->bits.reuse && ftpc->entrypath) { + else if(conn->bits.reuse && ftpc->entrypath && + /* no need to go to entrypath when we have an absolute path */ + !(ftpc->dirdepth && ftpc->dirs[0][0] == '/')) { /* This is a re-used connection. Since we change directory to where the transfer is taking place, we must first get back to the original dir where we ended up after login: */ diff --git a/tests/data/test1225 b/tests/data/test1225 index 2b2519c94..09a1abb79 100644 --- a/tests/data/test1225 +++ b/tests/data/test1225 @@ -45,7 +45,6 @@ TYPE I SIZE 1225
RETR 1225
CWD /
-CWD /
CWD foo
CWD bar
EPSV
|