diff options
author | shalev@chromium.org <shalev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-30 04:16:38 +0000 |
---|---|---|
committer | shalev@chromium.org <shalev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-30 04:16:38 +0000 |
commit | e841d0622eb6119d407d4acf4eeb6402c7c49ea8 (patch) | |
tree | aa4efdccf191325722d57665914aba11b20b01d7 | |
parent | 28c889e4159ca099a4813a1ad3af7c12776f96e4 (diff) | |
download | chromium_src-e841d0622eb6119d407d4acf4eeb6402c7c49ea8.zip chromium_src-e841d0622eb6119d407d4acf4eeb6402c7c49ea8.tar.gz chromium_src-e841d0622eb6119d407d4acf4eeb6402c7c49ea8.tar.bz2 |
Bug fix for lack of errors on requests with invalid ports
BUG=http://code.google.com/p/chromium/issues/detail?id=138735
Review URL: https://chromiumcodereview.appspot.com/10834053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148925 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | net/url_request/ftp_protocol_handler.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/url_request/ftp_protocol_handler.cc b/net/url_request/ftp_protocol_handler.cc index e10a1cd..b9dc0fa0 100644 --- a/net/url_request/ftp_protocol_handler.cc +++ b/net/url_request/ftp_protocol_handler.cc @@ -5,7 +5,12 @@ #include "net/url_request/ftp_protocol_handler.h" #include "base/logging.h" +#include "net/base/net_errors.h" +#include "net/base/net_util.h" +#include "net/url_request/url_request.h" +#include "net/url_request/url_request_error_job.h" #include "net/url_request/url_request_ftp_job.h" +#include "googleurl/src/gurl.h" namespace net { @@ -22,6 +27,12 @@ FtpProtocolHandler::FtpProtocolHandler( URLRequestJob* FtpProtocolHandler::MaybeCreateJob( URLRequest* request) const { + int port = request->url().IntPort(); + if (request->url().has_port() && + !IsPortAllowedByFtp(port) && !IsPortAllowedByOverride(port)) { + return new URLRequestErrorJob(request, ERR_UNSAFE_PORT); + } + return new URLRequestFtpJob(request, network_delegate_, ftp_transaction_factory_, |