mirror of
https://github.com/python/cpython.git
synced 2025-08-20 00:32:12 +00:00
Fix Issue6631 - Disallow relative files paths in urllib*.open()
This commit is contained in:
parent
631c258000
commit
58c6062068
3 changed files with 7 additions and 0 deletions
|
@ -134,6 +134,9 @@ class urlopen_FileTests(unittest.TestCase):
|
||||||
for line in self.returned_obj.__iter__():
|
for line in self.returned_obj.__iter__():
|
||||||
self.assertEqual(line, self.text)
|
self.assertEqual(line, self.text)
|
||||||
|
|
||||||
|
def test_relativelocalfile(self):
|
||||||
|
self.assertRaises(ValueError,urllib.urlopen,'./' + self.pathname)
|
||||||
|
|
||||||
class ProxyTests(unittest.TestCase):
|
class ProxyTests(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
@ -126,6 +126,8 @@ class OtherNetworkTests(unittest.TestCase):
|
||||||
finally:
|
finally:
|
||||||
os.remove(TESTFN)
|
os.remove(TESTFN)
|
||||||
|
|
||||||
|
self.assertRaises(ValueError, urllib2.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.
|
||||||
|
|
|
@ -484,6 +484,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'),
|
return addinfourl(open(localname, 'rb'),
|
||||||
headers, urlfile)
|
headers, urlfile)
|
||||||
host, port = splitport(host)
|
host, port = splitport(host)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue