Fix Issue6631 - Disallow relative file paths in urllib urlopen
This commit is contained in:
parent
002890861f
commit
3800ea9f65
|
@ -160,6 +160,9 @@ class urlopen_FileTests(unittest.TestCase):
|
|||
for line in self.returned_obj:
|
||||
self.assertEqual(line, self.text)
|
||||
|
||||
def test_relativelocalfile(self):
|
||||
self.assertRaises(ValueError,urllib.request.urlopen,'./' + self.pathname)
|
||||
|
||||
class ProxyTests(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
|
|
|
@ -125,6 +125,8 @@ class OtherNetworkTests(unittest.TestCase):
|
|||
finally:
|
||||
os.remove(TESTFN)
|
||||
|
||||
self.assertRaises(ValueError, urllib.request.urlopen,'./relative_path/to/file')
|
||||
|
||||
# XXX Following test depends on machine configurations that are internal
|
||||
# to CNRI. Need to set up a public server with the right authentication
|
||||
# configuration for test purposes.
|
||||
|
|
|
@ -1781,6 +1781,8 @@ class URLopener:
|
|||
urlfile = file
|
||||
if file[:1] == '/':
|
||||
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)
|
||||
raise URLError('local file error', 'not on local host')
|
||||
|
||||
|
|
Loading…
Reference in New Issue