diff options
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | net/data/ftp/dir-listing-ls-33 | 4 | ||||
-rw-r--r-- | net/data/ftp/dir-listing-ls-33.expected | 26 | ||||
-rw-r--r-- | net/ftp/ftp_directory_listing_parser_ls.cc | 5 | ||||
-rw-r--r-- | net/ftp/ftp_directory_listing_parser_unittest.cc | 1 |
5 files changed, 35 insertions, 2 deletions
@@ -580,6 +580,7 @@ Thomas Conti <tomc@amazon.com> Tiago Vignatti <tiago.vignatti@intel.com> Tim Ansell <mithro@mithis.com> Timo Reimann <ttr314@googlemail.com> +Tom Harwood <tfh@skip.org> Torsten Kurbad <google@tk-webart.de> Tomas Popela <tomas.popela@gmail.com> Trevor Perrin <unsafe@trevp.net> diff --git a/net/data/ftp/dir-listing-ls-33 b/net/data/ftp/dir-listing-ls-33 new file mode 100644 index 0000000..2a2e6a28 --- /dev/null +++ b/net/data/ftp/dir-listing-ls-33 @@ -0,0 +1,4 @@ +total -9560322322989056 +-rw-r--r-- 1 stadmin stgroup 4310450 Nov 17 13:12 01643.001.862.TestPermission-DUP0001.zip +-rw-r--r-- 1 stadmin stgroup 2496430080 Nov 13 14:46 I_Base_01_RSE_R720.iso +-rw-r--r-- 1 stadmin stgroup 478576612 Nov 13 08:11 I_Base_01_RSE_R720.zip diff --git a/net/data/ftp/dir-listing-ls-33.expected b/net/data/ftp/dir-listing-ls-33.expected new file mode 100644 index 0000000..7a54e70 --- /dev/null +++ b/net/data/ftp/dir-listing-ls-33.expected @@ -0,0 +1,26 @@ +-
+01643.001.862.TestPermission-DUP0001.zip
+4310450
+1993
+11
+17
+13
+12
+
+-
+I_Base_01_RSE_R720.iso
+2496430080
+1994
+11
+13
+14
+46
+
+-
+I_Base_01_RSE_R720.zip
+478576612
+1994
+11
+13
+8
+11
diff --git a/net/ftp/ftp_directory_listing_parser_ls.cc b/net/ftp/ftp_directory_listing_parser_ls.cc index 96d0dc8..b259cad 100644 --- a/net/ftp/ftp_directory_listing_parser_ls.cc +++ b/net/ftp/ftp_directory_listing_parser_ls.cc @@ -142,11 +142,12 @@ bool ParseFtpDirectoryListingLs( if (columns.size() == 2 && !received_total_line) { received_total_line = true; + // Some FTP servers incorrectly return a negative integer for "n". Since + // this value is ignored anyway, just check any valid integer was + // provided. int64 total_number; if (!base::StringToInt64(columns[1], &total_number)) return false; - if (total_number < 0) - return false; continue; } diff --git a/net/ftp/ftp_directory_listing_parser_unittest.cc b/net/ftp/ftp_directory_listing_parser_unittest.cc index b21c8da..08abf17 100644 --- a/net/ftp/ftp_directory_listing_parser_unittest.cc +++ b/net/ftp/ftp_directory_listing_parser_unittest.cc @@ -156,6 +156,7 @@ const FtpTestParam kTestParams[] = { {"dir-listing-ls-30", OK}, {"dir-listing-ls-31", OK}, {"dir-listing-ls-32", OK}, // busybox + {"dir-listing-ls-33", OK}, {"dir-listing-netware-1", OK}, {"dir-listing-netware-2", OK}, |