From ee246b73ec23809bdb18acdfee0bb2e0da7584c8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 12 Jan 2011 17:46:35 -0700 Subject: [PATCH] Zip file reading: Be more tolerant when a zip file has a damaged directory --- src/calibre/utils/zipfile.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/utils/zipfile.py b/src/calibre/utils/zipfile.py index ff290abd25..c230b9dfa7 100644 --- a/src/calibre/utils/zipfile.py +++ b/src/calibre/utils/zipfile.py @@ -982,9 +982,12 @@ class ZipFile: zef_file.read(fheader[_FH_EXTRA_FIELD_LENGTH]) if fname != zinfo.orig_filename: - raise BadZipfile, \ - 'File name in directory "%s" and header "%s" differ.' % ( - zinfo.orig_filename, fname) + print ('WARNING: Header (%r) and directory (%r) filenames do not' + ' match inside ZipFile')%(fname, zinfo.orig_filename) + print 'Using directory filename %r'%zinfo.orig_filename + #raise BadZipfile, \ + # 'File name in directory "%r" and header "%r" differ.' % ( + # zinfo.orig_filename, fname) # check for encrypted flag & handle password is_encrypted = zinfo.flag_bits & 0x1