diff options
author | Nikolaus Schulz <microschulz@web.de> | 2006-10-27 03:23:16 +0000 |
---|---|---|
committer | Nikolaus Schulz <microschulz@web.de> | 2006-10-27 03:23:16 +0000 |
commit | 5eb4cf3cf6bde4ef8d44247055f3fd98f22d878d (patch) | |
tree | ca66f726ef9349913f047114f8213a25708a0d33 | |
parent | e491da3a113ed15e5966a78b4461613b56c4b582 (diff) | |
download | archivemail-5eb4cf3cf6bde4ef8d44247055f3fd98f22d878d.tar.gz archivemail-5eb4cf3cf6bde4ef8d44247055f3fd98f22d878d.tar.bz2 archivemail-5eb4cf3cf6bde4ef8d44247055f3fd98f22d878d.zip |
Replaced all tempfile.mktemp() calls with mkstemp()/mkdtemp().
Should just serve as a last security fallback, since we operate in a safe
temporary directory and everything should be okay anyway, but that may be less
obvious. :-)
-rwxr-xr-x | archivemail.py | 9 | ||||
-rwxr-xr-x | test_archivemail.py | 57 |
2 files changed, 32 insertions, 34 deletions
diff --git a/archivemail.py b/archivemail.py index 26dc331..8d25e43 100755 --- a/archivemail.py +++ b/archivemail.py @@ -461,7 +461,7 @@ class RetainMbox(Mbox): """ assert(final_name) - temp_name = tempfile.mktemp("retain") + temp_name = tempfile.mkstemp("retain")[1] self.mbox_file = open(temp_name, "w") self.mbox_file_name = temp_name _stale.retain = temp_name @@ -533,7 +533,7 @@ class ArchiveMbox(Mbox): unexpected_error("""There is already a file named '%s'! Have you been previously compressing this archive? You probably should uncompress it manually, and try running me again.""" % compressed_archive) - temp_name = tempfile.mktemp("archive") + temp_name = tempfile.mkstemp("archive")[1] if os.path.isfile(final_name): vprint("file already exists that is named: %s" % final_name) shutil.copy2(final_name, temp_name) @@ -550,7 +550,7 @@ uncompress it manually, and try running me again.""" % compressed_archive) Have you been reading this archive? You probably should re-compress it manually, and try running me again.""" % final_name) - temp_name = tempfile.mktemp("archive.gz") + temp_name = tempfile.mkstemp("archive.gz")[1] if os.path.isfile(compressed_filename): vprint("file already exists that is named: %s" % \ compressed_filename) @@ -1071,9 +1071,8 @@ def archive(mailbox_name): # create a temporary directory for us to work in securely old_temp_dir = tempfile.tempdir tempfile.tempdir = None - new_temp_dir = tempfile.mktemp('archivemail') + new_temp_dir = tempfile.mkdtemp('archivemail') assert(new_temp_dir) - os.mkdir(new_temp_dir) _stale.temp_dir = new_temp_dir tempfile.tempdir = new_temp_dir vprint("set tempfile directory to '%s'" % new_temp_dir) diff --git a/test_archivemail.py b/test_archivemail.py index b5d5fd0..1e8ca70 100755 --- a/test_archivemail.py +++ b/test_archivemail.py @@ -350,7 +350,7 @@ class TestArchiveMbox(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) self.mbox_mode = os.stat(self.mbox_name)[stat.ST_MODE] - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -377,7 +377,7 @@ class TestArchiveMbox(TestCaseInTempdir): From is on this line This is after the ^From line""" self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181), body=body) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) archivemail.archive(self.mbox_name) assert(os.path.exists(self.mbox_name)) @@ -416,7 +416,7 @@ This is after the ^From line""" '--date="29 Jul 2000"', '--date="29 July 2000"'): self.setUp() self.mbox_name = make_mbox(messages=3, headers=headers) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) run = "./archivemail.py -q %s %s" % (option, self.mbox_name) self.assertEqual(os.system(run), 0) @@ -433,7 +433,7 @@ This is after the ^From line""" '--date="27 Jul 2000"', '--date="27 July 2000"'): self.setUp() self.mbox_name = make_mbox(messages=3, headers=headers) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) run = "./archivemail.py -q %s %s" % (option, self.mbox_name) self.assertEqual(os.system(run), 0) @@ -449,7 +449,7 @@ This is after the ^From line""" self.setUp() self.new_mbox = make_mbox(messages=3, hours_old=(24 * 179)) self.old_mbox = make_mbox(messages=3, hours_old=(24 * 181)) - self.mbox_name = tempfile.mktemp() + self.mbox_name = tempfile.mkstemp()[1] shutil.copyfile(self.new_mbox, self.mbox_name) append_file(self.old_mbox, self.mbox_name) if execute == "package": @@ -475,7 +475,7 @@ This is after the ^From line""" self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 179)) self.mbox_mode = os.stat(self.mbox_name)[stat.ST_MODE] - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -499,7 +499,7 @@ This is after the ^From line""" self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) self.mbox_mode = os.stat(self.mbox_name)[stat.ST_MODE] - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] archive_name = self.mbox_name + "_archive" shutil.copyfile(self.mbox_name, self.copy_name) shutil.copyfile(self.mbox_name, archive_name) # archive has 3 msgs @@ -568,7 +568,7 @@ This is after the ^From line""" for headers in weird_headers: self.setUp() self.mbox_name = make_mbox(messages=3, headers=headers) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) archivemail.archive(self.mbox_name) assert(os.path.exists(self.mbox_name)) @@ -678,7 +678,7 @@ class TestArchiveMboxPreserveStatus(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181), \ headers={"Status":"RO"}) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -706,7 +706,7 @@ class TestArchiveMboxPreserveStatus(TestCaseInTempdir): for execute in ("package", "system_long", "system_short"): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -745,7 +745,7 @@ class TestArchiveMboxSuffix(TestCaseInTempdir): days_old_max = 180 self.mbox_name = make_mbox(messages=3, hours_old=(24 * (days_old_max+1))) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "system_long": run = "./archivemail.py --quiet --suffix='%s' %s" % \ @@ -794,7 +794,7 @@ class TestArchiveDryRun(TestCaseInTempdir): for execute in ("package", "system_long", "system_short"): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -829,7 +829,7 @@ class TestArchiveDays(TestCaseInTempdir): for execute in ("package", "system", "system_long"): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 12)) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.options.days_old_max = 11 @@ -857,7 +857,7 @@ class TestArchiveDays(TestCaseInTempdir): for execute in ("package", "system", "system_long"): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 10)) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.options.days_old_max = 11 @@ -899,7 +899,7 @@ class TestArchiveDelete(TestCaseInTempdir): for execute in ("package", "system"): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 179)) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -920,7 +920,7 @@ class TestArchiveDelete(TestCaseInTempdir): self.setUp() self.new_mbox = make_mbox(messages=3, hours_old=(24 * 179)) self.old_mbox = make_mbox(messages=3, hours_old=(24 * 181)) - self.mbox_name = tempfile.mktemp() + self.mbox_name = tempfile.mkstemp()[1] shutil.copyfile(self.new_mbox, self.mbox_name) append_file(self.old_mbox, self.mbox_name) if execute == "package": @@ -941,7 +941,7 @@ class TestArchiveDelete(TestCaseInTempdir): for execute in ("package", "system"): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -974,7 +974,7 @@ class TestArchiveMboxFlagged(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181), \ headers={"X-Status":"F"}) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.options.include_flagged = 0 @@ -996,7 +996,7 @@ class TestArchiveMboxFlagged(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 179), \ headers={"X-Status":"F"}) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.options.include_flagged = 1 @@ -1019,7 +1019,7 @@ class TestArchiveMboxFlagged(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181), \ headers={"X-Status":"F"}) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.options.include_flagged = 1 @@ -1057,10 +1057,9 @@ class TestArchiveMboxOutputDir(TestCaseInTempdir): for execute in ("package", "system_long", "system_short"): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) - self.dir_name = tempfile.mktemp() - os.mkdir(self.dir_name) + self.dir_name = tempfile.mkdtemp() if execute == "package": archivemail.options.output_dir = self.dir_name archivemail.archive(self.mbox_name) @@ -1109,7 +1108,7 @@ class TestArchiveMboxUncompressed(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) self.mbox_mode = os.stat(self.mbox_name)[stat.ST_MODE] - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -1135,7 +1134,7 @@ class TestArchiveMboxUncompressed(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 179)) self.mbox_mode = os.stat(self.mbox_name)[stat.ST_MODE] - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.archive(self.mbox_name) @@ -1160,7 +1159,7 @@ class TestArchiveMboxUncompressed(TestCaseInTempdir): self.setUp() self.new_mbox = make_mbox(messages=3, hours_old=(24 * 179)) self.old_mbox = make_mbox(messages=3, hours_old=(24 * 181)) - self.mbox_name = tempfile.mktemp() + self.mbox_name = tempfile.mkstemp()[1] shutil.copyfile(self.new_mbox, self.mbox_name) append_file(self.old_mbox, self.mbox_name) if execute == "package": @@ -1185,7 +1184,7 @@ class TestArchiveMboxUncompressed(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=3, hours_old=(24 * 181)) self.mbox_mode = os.stat(self.mbox_name)[stat.ST_MODE] - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] archive_name = self.mbox_name + "_archive" shutil.copyfile(self.mbox_name, self.copy_name) shutil.copyfile(self.mbox_name, archive_name) # archive has 3 msgs @@ -1226,7 +1225,7 @@ class TestArchiveSize(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=1, hours_old=(24 * 181)) size_arg = os.path.getsize(self.mbox_name) - 1 - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.options.min_size = size_arg @@ -1257,7 +1256,7 @@ class TestArchiveSize(TestCaseInTempdir): self.setUp() self.mbox_name = make_mbox(messages=1, hours_old=(24 * 181)) size_arg = os.path.getsize(self.mbox_name) + 1 - self.copy_name = tempfile.mktemp() + self.copy_name = tempfile.mkstemp()[1] shutil.copyfile(self.mbox_name, self.copy_name) if execute == "package": archivemail.options.min_size = size_arg |