summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/urllib.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/Lib/urllib.py b/Lib/urllib.py
index e57311b..a8a579b 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -592,6 +592,13 @@ def basejoin(base, url):
else:
# remove last file component
basepath = basepath[:i+1]
+ # Interpret ../ (important because of symlinks)
+ while basepath and path[:3] == '../':
+ path = path[3:]
+ i = string.rfind(basepath, '/')
+ if i > 0:
+ basepath = basepath[:i-1]
+
path = basepath + path
if type and host: return type + '://' + host + path
elif type: return type + ':' + path