diff options
author | Lennart Poettering <lennart@poettering.net> | 2005-11-26 03:01:51 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2005-11-26 03:01:51 +0000 |
commit | 8b82b54ea066ac88fbcdb65d5d69e7bbba3c397f (patch) | |
tree | 59e943890d331b4d8ac238d981b45cad6b6f3f9b | |
parent | a3c6c405a297ddc933282806adbdf345b3b8e646 (diff) |
handle EOFErrors when untarring
git-svn-id: file:///home/lennart/svn/public/sse/trunk@68 5fbabb74-0606-0410-a5e4-b5cc6a42724e
-rwxr-xr-x | feed/sse_tar.py | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/feed/sse_tar.py b/feed/sse_tar.py index b3d86e6..8a1a492 100755 --- a/feed/sse_tar.py +++ b/feed/sse_tar.py @@ -96,23 +96,14 @@ def uncompress_zip(archive, root, package_id, meta = {}): def uncompress_archive(archive, root, package_id, meta = {}): n = -1 - - try: - n = uncompress_tar(archive, root, package_id, meta) - except tarfile.TarError: + + try: try: + n = uncompress_tar(archive, root, package_id, meta) + except tarfile.TarError: n = uncompress_zip(archive, root, package_id, meta) - except zipfile.error: - print "WARNING: Unknown file format." - except IOError: - print "WARNING: Broken archive." - except IOError, e: - if e[0] == "CRC check failed": - print "WARNING: Broken archive." - else: - raise e - except zlib.error: - print "WARNING: Broken archive." + except (zipfile.error, zlib.error, EOFError, IOError), e: + print "WARNING: Broken archive: %s" % e return n |