Commit 58c60620 authored by Senthil Kumaran's avatar Senthil Kumaran

Fix Issue6631 - Disallow relative files paths in urllib*.open()

parent 631c2580
......@@ -134,6 +134,9 @@ class urlopen_FileTests(unittest.TestCase):
for line in self.returned_obj.__iter__():
self.assertEqual(line, self.text)
def test_relativelocalfile(self):
self.assertRaises(ValueError,urllib.urlopen,'./' + self.pathname)
class ProxyTests(unittest.TestCase):
def setUp(self):
......
......@@ -126,6 +126,8 @@ class OtherNetworkTests(unittest.TestCase):
finally:
os.remove(TESTFN)
self.assertRaises(ValueError, urllib2.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.
......
......@@ -484,6 +484,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)
host, port = splitport(host)
......
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