Index: net/ftp/ftp_directory_listing_parser_ls.cc |
diff --git a/net/ftp/ftp_directory_listing_parser_ls.cc b/net/ftp/ftp_directory_listing_parser_ls.cc |
index 38025a0d7677b403d75cc8d5d4dca3aa6129ed1b..038af116ccbb3bd95196e2a24d983bc9591dcc0b 100644 |
--- a/net/ftp/ftp_directory_listing_parser_ls.cc |
+++ b/net/ftp/ftp_directory_listing_parser_ls.cc |
@@ -158,9 +158,11 @@ bool FtpDirectoryListingParserLs::ConsumeLine(const string16& line) { |
entry.name = FtpUtil::GetStringPartAfterColumns(line, 6 + column_offset); |
if (entry.type == FtpDirectoryListingEntry::SYMLINK) { |
string16::size_type pos = entry.name.rfind(ASCIIToUTF16(" -> ")); |
- if (pos == string16::npos) |
- return false; |
- entry.name = entry.name.substr(0, pos); |
+ |
+ // We don't require the " -> " to be present. Some FTP servers don't send |
+ // the symlink target, possibly for security reasons. |
+ if (pos != string16::npos) |
+ entry.name = entry.name.substr(0, pos); |
} |
entries_.push(entry); |