summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshalev@chromium.org <shalev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-30 04:16:38 +0000
committershalev@chromium.org <shalev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-30 04:16:38 +0000
commite841d0622eb6119d407d4acf4eeb6402c7c49ea8 (patch)
treeaa4efdccf191325722d57665914aba11b20b01d7
parent28c889e4159ca099a4813a1ad3af7c12776f96e4 (diff)
downloadchromium_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.cc11
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_,