summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphillip.eby <phillip.eby@6015fed2-1504-0410-9fe1-9d1591cc4771>2008-08-21 17:42:05 +0000
committerphillip.eby <phillip.eby@6015fed2-1504-0410-9fe1-9d1591cc4771>2008-08-21 17:42:05 +0000
commit24ec1a472685aaa56af945d7da3790681d008dea (patch)
tree983cb253069e614e477e522e7edd056e3b8daa5f
parent851c5b46d98ce2443d97b55a42de86290686130b (diff)
downloadpython-setuptools-24ec1a472685aaa56af945d7da3790681d008dea.tar.gz
Fix for http://bugs.python.org/setuptools/issue23
git-svn-id: http://svn.python.org/projects/sandbox/trunk/setuptools@65939 6015fed2-1504-0410-9fe1-9d1591cc4771
-rw-r--r--pkg_resources.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/pkg_resources.py b/pkg_resources.py
index 0b96fa0..363fdf2 100644
--- a/pkg_resources.py
+++ b/pkg_resources.py
@@ -20,17 +20,17 @@ try:
except NameError:
from sets import ImmutableSet as frozenset
-from os import utime, rename, unlink # capture these to bypass sandboxing
+# capture these to bypass sandboxing
+from os import utime, rename, unlink, mkdir
from os import open as os_open
+from os.path import isdir, split
-
-
-
-
-
-
-
-
+def _bypass_ensure_directory(name, mode=0777):
+ # Sandbox-bypassing version of ensure_directory()
+ dirname, filename = split(name)
+ if dirname and filename and not isdir(dirname):
+ _bypass_ensure_directory(dirname)
+ mkdir(dirname, mode)
@@ -916,7 +916,7 @@ variable to point to an accessible directory.
extract_path = self.extraction_path or get_default_cache()
target_path = os.path.join(extract_path, archive_name+'-tmp', *names)
try:
- ensure_directory(target_path)
+ _bypass_ensure_directory(target_path)
except:
self.extraction_error()