From 834eff6a4ca700cb39a820db03e8c185c1b5dcb5 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Fri, 7 Mar 2003 12:47:06 +0000 Subject: [PATCH] Test that os.utime and os.chmod actually exist before using them. --- Lib/tarfile.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 32bb87efc86..270c2b2b8f5 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.