Kaydet (Commit) 3800ea9f authored tarafından Senthil Kumaran's avatar Senthil Kumaran

Fix Issue6631 - Disallow relative file paths in urllib urlopen

üst 00289086
...@@ -160,6 +160,9 @@ class urlopen_FileTests(unittest.TestCase): ...@@ -160,6 +160,9 @@ class urlopen_FileTests(unittest.TestCase):
for line in self.returned_obj: for line in self.returned_obj:
self.assertEqual(line, self.text) self.assertEqual(line, self.text)
def test_relativelocalfile(self):
self.assertRaises(ValueError,urllib.request.urlopen,'./' + self.pathname)
class ProxyTests(unittest.TestCase): class ProxyTests(unittest.TestCase):
def setUp(self): def setUp(self):
......
...@@ -125,6 +125,8 @@ class OtherNetworkTests(unittest.TestCase): ...@@ -125,6 +125,8 @@ class OtherNetworkTests(unittest.TestCase):
finally: finally:
os.remove(TESTFN) os.remove(TESTFN)
self.assertRaises(ValueError, urllib.request.urlopen,'./relative_path/to/file')
# XXX Following test depends on machine configurations that are internal # XXX Following test depends on machine configurations that are internal
# to CNRI. Need to set up a public server with the right authentication # to CNRI. Need to set up a public server with the right authentication
# configuration for test purposes. # configuration for test purposes.
......
...@@ -1781,6 +1781,8 @@ class URLopener: ...@@ -1781,6 +1781,8 @@ class URLopener:
urlfile = file urlfile = file
if file[:1] == '/': if file[:1] == '/':
urlfile = 'file://' + file urlfile = 'file://' + file
elif file[:2] == './':
raise ValueError("local file url may start with / or file:. Unknown url of type: %s" % url)
return addinfourl(open(localname, 'rb'), headers, urlfile) return addinfourl(open(localname, 'rb'), headers, urlfile)
raise URLError('local file error', 'not on local host') raise URLError('local file error', 'not on local host')
......
...@@ -103,6 +103,8 @@ Core and Builtins ...@@ -103,6 +103,8 @@ Core and Builtins
Library Library
------- -------
- Issue #6631: Disallow relative file paths in urllib urlopen methods.
- Issue #13722: Avoid silencing ImportErrors when initializing the codecs - Issue #13722: Avoid silencing ImportErrors when initializing the codecs
registry. registry.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment