diff options
| author | jvoisin | 2011-08-04 16:12:22 +0200 |
|---|---|---|
| committer | jvoisin | 2011-08-04 16:12:22 +0200 |
| commit | ad31d77e6a199295ba44832abec35b054d04bced (patch) | |
| tree | 15a4ce04cb70812d663108517dae35440f343d41 /lib | |
| parent | b8491275fc93385236a0bc3856ecaf3acaab6b63 (diff) | |
Cleanup
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/archive.py | 8 | ||||
| -rw-r--r-- | lib/office.py | 4 | ||||
| -rw-r--r-- | lib/parser.py | 1 |
3 files changed, 6 insertions, 7 deletions
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 @@ | |||
| 1 | ''' | 1 | ''' |
| 2 | Take care of archives formats | 2 | Take care of archives formats |
| 3 | ''' | 3 | ''' |
| 4 | import tarfile | ||
| 5 | import zipfile | ||
| 6 | 4 | ||
| 5 | import zipfile | ||
| 7 | import shutil | 6 | import shutil |
| 8 | import os | 7 | import os |
| 9 | import logging | 8 | import logging |
| @@ -11,7 +10,7 @@ import tempfile | |||
| 11 | 10 | ||
| 12 | import parser | 11 | import parser |
| 13 | import mat | 12 | import mat |
| 14 | 13 | import tarfile | |
| 15 | 14 | ||
| 16 | class GenericArchiveStripper(parser.GenericParser): | 15 | class GenericArchiveStripper(parser.GenericParser): |
| 17 | ''' | 16 | ''' |
| @@ -224,6 +223,7 @@ class TarStripper(GenericArchiveStripper): | |||
| 224 | tarin = tarfile.open(self.filename, 'r' + self.compression) | 223 | tarin = tarfile.open(self.filename, 'r' + self.compression) |
| 225 | for item in tarin.getmembers(): | 224 | for item in tarin.getmembers(): |
| 226 | if not self.is_file_clean(item): | 225 | if not self.is_file_clean(item): |
| 226 | tarin.close() | ||
| 227 | return False | 227 | return False |
| 228 | tarin.extract(item, self.tempdir) | 228 | tarin.extract(item, self.tempdir) |
| 229 | name = os.path.join(self.tempdir, item.name) | 229 | name = os.path.join(self.tempdir, item.name) |
| @@ -233,12 +233,14 @@ class TarStripper(GenericArchiveStripper): | |||
| 233 | class_file = mat.create_class_file(name, | 233 | class_file = mat.create_class_file(name, |
| 234 | False, self.add2archive) | 234 | False, self.add2archive) |
| 235 | if not class_file.is_clean(): | 235 | if not class_file.is_clean(): |
| 236 | tarin.close() | ||
| 236 | return False | 237 | return False |
| 237 | except: | 238 | except: |
| 238 | #best solution I have found | 239 | #best solution I have found |
| 239 | logging.error('%s is not supported' % item.filename) | 240 | logging.error('%s is not supported' % item.filename) |
| 240 | _, ext = os.path.splitext(name) | 241 | _, ext = os.path.splitext(name) |
| 241 | if ext not in parser.NOMETA: | 242 | if ext not in parser.NOMETA: |
| 243 | tarin.close() | ||
| 242 | return False | 244 | return False |
| 243 | mat.secure_remove(name) | 245 | mat.secure_remove(name) |
| 244 | tarin.close() | 246 | 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): | |||
| 103 | zipin.close() | 103 | zipin.close() |
| 104 | czf = archive.ZipStripper(self.filename, self.parser, | 104 | czf = archive.ZipStripper(self.filename, self.parser, |
| 105 | 'application/zip', self.backup, self.add2archive) | 105 | 'application/zip', self.backup, self.add2archive) |
| 106 | if czf.is_clean(): | 106 | if not czf.is_clean(): |
| 107 | return True | ||
| 108 | else: | ||
| 109 | return False | 107 | return False |
| 110 | return True | 108 | return True |
| 111 | 109 | ||
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): | |||
| 31 | self.output = basename + '.cleaned' + ext | 31 | self.output = basename + '.cleaned' + ext |
| 32 | self.basename = os.path.basename(filename) # only filename | 32 | self.basename = os.path.basename(filename) # only filename |
| 33 | 33 | ||
| 34 | |||
| 35 | def is_clean(self): | 34 | def is_clean(self): |
| 36 | ''' | 35 | ''' |
| 37 | Check if the file is clean from harmful metadatas | 36 | Check if the file is clean from harmful metadatas |
