Issue #4489: Rename the feature marker for the symlink resistant rmtree and store it as a function attribute

This commit is contained in:
Nick Coghlan 2012-06-24 16:43:06 +10:00
parent 8e5c0a774f
commit 5b0eca116a
4 changed files with 28 additions and 18 deletions

View file

@ -405,8 +405,9 @@ def _rmtree_safe_fd(topfd, path, onerror):
except os.error:
onerror(os.rmdir, path, sys.exc_info())
rmtree_is_safe = _use_fd_functions = (os.unlink in os.supports_dir_fd and
os.open in os.supports_dir_fd)
_use_fd_functions = (os.unlink in os.supports_dir_fd and
os.open in os.supports_dir_fd)
def rmtree(path, ignore_errors=False, onerror=None):
"""Recursively delete a directory tree.
@ -449,6 +450,9 @@ def rmtree(path, ignore_errors=False, onerror=None):
else:
return _rmtree_unsafe(path, onerror)
# Allow introspection of whether or not the hardening against symlink
# attacks is supported on the current platform
rmtree.avoids_symlink_attacks = _use_fd_functions
def _basename(path):
# A basename() variant which first strips the trailing slash, if present.