[Python-checkins] cpython (3.4): Fix localhost checking in FileHandler. Raised in #21970.

senthil.kumaran python-checkins at python.org
Tue Jul 22 09:16:29 CEST 2014


http://hg.python.org/cpython/rev/4b98961748f1
changeset:   91755:4b98961748f1
branch:      3.4
parent:      91752:4dac45f88d45
user:        Senthil Kumaran <senthil at uthcode.com>
date:        Tue Jul 22 00:15:20 2014 -0700
summary:
  Fix localhost checking in FileHandler. Raised in #21970.

files:
  Lib/test/test_urllib2.py |  3 ++-
  Lib/urllib/request.py    |  2 +-
  2 files changed, 3 insertions(+), 2 deletions(-)


diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -678,7 +678,7 @@
             self.assertEqual(int(headers["Content-length"]), len(data))
 
     def test_file(self):
-        import email.utils, socket
+        import email.utils
         h = urllib.request.FileHandler()
         o = h.parent = MockOpener()
 
@@ -725,6 +725,7 @@
         for url in [
             "file://localhost:80%s" % urlpath,
             "file:///file_does_not_exist.txt",
+            "file://not-a-local-host.com//dir/file.txt",
             "file://%s:80%s/%s" % (socket.gethostbyname('localhost'),
                                    os.getcwd(), TESTFN),
             "file://somerandomhost.ontheinternet.com%s/%s" %
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -1315,7 +1315,7 @@
         url = req.selector
         if url[:2] == '//' and url[2:3] != '/' and (req.host and
                 req.host != 'localhost'):
-            if not req.host is self.get_names():
+            if not req.host in self.get_names():
                 raise URLError("file:// scheme is supported only on localhost")
         else:
             return self.open_local_file(req)

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list