changeset: 77119:988903cf24c5 branch: 2.7 user: Senthil Kumaran date: Thu May 24 21:54:34 2012 +0800 files: Lib/test/test_urlparse.py Lib/urlparse.py Misc/NEWS description: Issue #14036: return None when port in urlparse cross 65535 diff -r 290d970c011d -r 988903cf24c5 Lib/test/test_urlparse.py --- a/Lib/test/test_urlparse.py Wed May 23 23:16:14 2012 +0200 +++ b/Lib/test/test_urlparse.py Thu May 24 21:54:34 2012 +0800 @@ -437,6 +437,11 @@ self.assertEqual(p.port, 80) self.assertEqual(p.geturl(), url) + # Verify an illegal port of value greater than 65535 is set as None + url = "http://www.python.org:65536" + p = urlparse.urlsplit(url) + self.assertEqual(p.port, None) + def test_issue14072(self): p1 = urlparse.urlsplit('tel:+31-641044153') self.assertEqual(p1.scheme, 'tel') diff -r 290d970c011d -r 988903cf24c5 Lib/urlparse.py --- a/Lib/urlparse.py Wed May 23 23:16:14 2012 +0200 +++ b/Lib/urlparse.py Thu May 24 21:54:34 2012 +0800 @@ -97,9 +97,11 @@ netloc = self.netloc.split('@')[-1].split(']')[-1] if ':' in netloc: port = netloc.split(':')[1] - return int(port, 10) - else: - return None + port = int(port, 10) + # verify legal port + if (0 <= port <= 65535): + return port + return None from collections import namedtuple diff -r 290d970c011d -r 988903cf24c5 Misc/NEWS --- a/Misc/NEWS Wed May 23 23:16:14 2012 +0200 +++ b/Misc/NEWS Thu May 24 21:54:34 2012 +0800 @@ -64,6 +64,9 @@ Library ------- +- Issue #14036: Add an additional check to validate that port in urlparse does + not go in illegal range and returns None. + - Issue #14888: Fix misbehaviour of the _md5 module when called on data larger than 2**32 bytes.

AltStyle によって変換されたページ (->オリジナル) /