From: Jack Jansen Date: Fri, 7 Mar 2003 12:47:06 +0000 (+0000) Subject: Test that os.utime and os.chmod actually exist before using them. X-Git-Tag: v2.3c1~1544 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=834eff6a4ca700cb39a820db03e8c185c1b5dcb5;p=python Test that os.utime and os.chmod actually exist before using them. --- diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 32bb87efc8..270c2b2b8f 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -1513,14 +1513,17 @@ class TarFile(object): def chmod(self, tarinfo, targetpath): """Set file permissions of targetpath according to tarinfo. """ - try: - os.chmod(targetpath, tarinfo.mode) - except EnvironmentError, e: - raise ExtractError, "could not change mode" + if hasattr(os, 'chmod'): + try: + os.chmod(targetpath, tarinfo.mode) + except EnvironmentError, e: + raise ExtractError, "could not change mode" def utime(self, tarinfo, targetpath): """Set modification time of targetpath according to tarinfo. """ + if not hasattr(os, 'utime'): + return if sys.platform == "win32" and tarinfo.isdir(): # According to msdn.microsoft.com, it is an error (EACCES) # to use utime() on directories.