diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2010-12-17 04:48:45 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2010-12-17 04:48:45 (GMT) |
commit | dca5b862338034460e060cedee8ba788073e20b3 (patch) | |
tree | d8ddee086be76d1b11fb371a778d518a842b0d55 | |
parent | b25a791802a1915097e02bfba04e27a41ae55ebf (diff) | |
download | cpython-dca5b862338034460e060cedee8ba788073e20b3.zip cpython-dca5b862338034460e060cedee8ba788073e20b3.tar.gz cpython-dca5b862338034460e060cedee8ba788073e20b3.tar.bz2 |
Fix Issue9721 - urljoin behavior when the relative url starts with ';'
-rw-r--r-- | Lib/test/test_urlparse.py | 3 | ||||
-rw-r--r-- | Lib/urllib/parse.py | 9 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py index 73e4de5..f9f97b1 100644 --- a/Lib/test/test_urlparse.py +++ b/Lib/test/test_urlparse.py @@ -327,6 +327,9 @@ class UrlParseTestCase(unittest.TestCase): #self.checkJoin(RFC3986_BASE, 'http:g','http:g') # strict parser self.checkJoin(RFC3986_BASE, 'http:g','http://a/b/c/g') #relaxed parser + # Test for issue9721 + self.checkJoin('http://a/b/c/de', ';x','http://a/b/c/;x') + def test_urljoins(self): self.checkJoin(SIMPLE_BASE, 'g:h','g:h') self.checkJoin(SIMPLE_BASE, 'http:g','http://a/b/c/g') diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py index eedd071..42f8193 100644 --- a/Lib/urllib/parse.py +++ b/Lib/urllib/parse.py @@ -411,14 +411,9 @@ def urljoin(base, url, allow_fragments=True): if path[:1] == '/': return _coerce_result(urlunparse((scheme, netloc, path, params, query, fragment))) - if not path: + if not path and not params: path = bpath - if not params: - params = bparams - else: - path = path[:-1] - return _coerce_result(urlunparse((scheme, netloc, path, - params, query, fragment))) + params = bparams if not query: query = bquery return _coerce_result(urlunparse((scheme, netloc, path, @@ -19,6 +19,8 @@ Core and Builtins Library ------- +- Issue #9721: Fix the behavior of urljoin when the relative url starts with a + ';' character. Patch by Wes Chow. - Issue #10714: Limit length of incoming request in http.server to 65536 bytes for security reasons. Initial patch by Ross Lagerwall. |