Issue 2464. Supports a malformation in the URL received

in a redirect.
This commit is contained in:
Facundo Batista 2008-08-17 03:36:03 +00:00
parent 8d5d62ff0f
commit f24802c006
1 changed files with 9 additions and 1 deletions

View File

@ -100,7 +100,7 @@ from urllib.error import URLError, HTTPError, ContentTooShortError
from urllib.parse import (
urlparse, urlsplit, urljoin, unwrap, quote, unquote,
splittype, splithost, splitport, splituser, splitpasswd,
splitattr, splitquery, splitvalue, to_bytes)
splitattr, splitquery, splitvalue, to_bytes, urlunparse)
from urllib.response import addinfourl, addclosehook
# check for SSL
@ -535,6 +535,14 @@ class HTTPRedirectHandler(BaseHandler):
newurl = headers["uri"]
else:
return
# fix a possible malformed URL
urlparts = urlparse(newurl)
if not urlparts.path:
urlparts = list(urlparts)
urlparts[2] = "/"
newurl = urlunparse(urlparts)
newurl = urljoin(req.get_full_url(), newurl)
# XXX Probably want to forget about the state of the current