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 +++++--- lib/office.py | 4 +--- lib/parser.py | 1 - 3 files changed, 6 insertions(+), 7 deletions(-) (limited to 'lib') 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() diff --git a/lib/office.py b/lib/office.py index e21805a..f236d09 100644 --- a/lib/office.py +++ b/lib/office.py @@ -103,9 +103,7 @@ class OpenDocumentStripper(archive.GenericArchiveStripper): zipin.close() czf = archive.ZipStripper(self.filename, self.parser, 'application/zip', self.backup, self.add2archive) - if czf.is_clean(): - return True - else: + if not czf.is_clean(): return False return True diff --git a/lib/parser.py b/lib/parser.py index 044ef0a..1bdca57 100644 --- a/lib/parser.py +++ b/lib/parser.py @@ -31,7 +31,6 @@ class GenericParser(object): self.output = basename + '.cleaned' + ext self.basename = os.path.basename(filename) # only filename - def is_clean(self): ''' Check if the file is clean from harmful metadatas -- cgit v1.3