From ad31d77e6a199295ba44832abec35b054d04bced Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 4 Aug 2011 16:12:22 +0200 Subject: Cleanup --- lib/archive.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/archive.py') diff --git a/lib/archive.py b/lib/archive.py index 108134c..5956a1e 100644 --- a/lib/archive.py +++ b/lib/archive.py @@ -1,9 +1,8 @@ ''' Take care of archives formats ''' -import tarfile -import zipfile +import zipfile import shutil import os import logging @@ -11,7 +10,7 @@ import tempfile import parser import mat - +import tarfile class GenericArchiveStripper(parser.GenericParser): ''' @@ -224,6 +223,7 @@ class TarStripper(GenericArchiveStripper): tarin = tarfile.open(self.filename, 'r' + self.compression) for item in tarin.getmembers(): if not self.is_file_clean(item): + tarin.close() return False tarin.extract(item, self.tempdir) name = os.path.join(self.tempdir, item.name) @@ -233,12 +233,14 @@ class TarStripper(GenericArchiveStripper): class_file = mat.create_class_file(name, False, self.add2archive) if not class_file.is_clean(): + tarin.close() return False except: #best solution I have found logging.error('%s is not supported' % item.filename) _, ext = os.path.splitext(name) if ext not in parser.NOMETA: + tarin.close() return False mat.secure_remove(name) tarin.close() -- cgit v1.3