diff options
| -rw-r--r-- | lib/ftp.c | 8 | ||||
| -rw-r--r-- | tests/data/Makefile.am | 2 | ||||
| -rw-r--r-- | tests/data/test353 | 56 | 
3 files changed, 64 insertions, 2 deletions
| @@ -3691,6 +3691,12 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)    case FTPFILE_SINGLECWD:      /* get the last slash */ +    if(!path_to_use[0]) { +      /* no dir, no file */ +      ftpc->dirdepth = 0; +      ftp->file = NULL; +      break; +    }      slash_pos=strrchr(cur_pos, '/');      if(slash_pos || !*cur_pos) {        ftpc->dirs = (char **)calloc(1, sizeof(ftpc->dirs[0])); @@ -3773,7 +3779,7 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)      ftp->file = cur_pos;  /* the rest is the file name */    } -  if(*ftp->file) { +  if(ftp->file && *ftp->file) {      ftp->file = curl_easy_unescape(conn->data, ftp->file, 0, NULL);      if(NULL == ftp->file) {        freedirs(conn); diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 8fc8fbc62..f18df11b5 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -42,4 +42,4 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46	   \   test405 test604 test605 test606 test607 test608 test609 test294 test295   \   test296 test297 test298 test610 test611 test612 test406 test407 test408   \   test409 test613 test614 test700 test701 test702 test704 test705 test703   \ - test706 test707 test350 test351 test352 + test706 test707 test350 test351 test352 test353 diff --git a/tests/data/test353 b/tests/data/test353 new file mode 100644 index 000000000..417b8c3ea --- /dev/null +++ b/tests/data/test353 @@ -0,0 +1,56 @@ +<testcase> +<info> +<keywords> +FTP +PASV +LIST +</keywords> +</info> +# +# Server-side +<reply> +# When doing LIST, we get the default list output hard-coded in the test +# FTP server +<datacheck> +total 20 +drwxr-xr-x   8 98       98           512 Oct 22 13:06 . +drwxr-xr-x   8 98       98           512 Oct 22 13:06 .. +drwxr-xr-x   2 98       98           512 May  2  1996 .NeXT +-r--r--r--   1 0        1             35 Jul 16  1996 README +lrwxrwxrwx   1 0        1              7 Dec  9  1999 bin -> usr/bin +dr-xr-xr-x   2 0        1            512 Oct  1  1997 dev +drwxrwxrwx   2 98       98           512 May 29 16:04 download.html +dr-xr-xr-x   2 0        1            512 Nov 30  1995 etc +drwxrwxrwx   2 98       1            512 Oct 30 14:33 pub +dr-xr-xr-x   5 0        1            512 Oct  1  1997 usr +</datacheck> +</reply> + +# +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP home dir list singlecwd + </name> + <command> +ftp://%HOSTIP:%FTPPORT/ --ftp-method singlecwd +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<protocol> +USER anonymous
 +PASS ftp@example.com
 +PWD
 +EPSV
 +TYPE A
 +LIST
 +QUIT
 +</protocol> +</verify> +</testcase> | 
