From f1c1ddc3f251efcc870f13a841b0511f78511d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCrer=20=C3=96zen?= Date: Mon, 10 Jul 2006 16:03:58 +0000 Subject: [PATCH] =?UTF-8?q?testleri=20ge=C3=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pisi/archive.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pisi/archive.py b/pisi/archive.py index 8b636730..8d24f89c 100644 --- a/pisi/archive.py +++ b/pisi/archive.py @@ -181,6 +181,8 @@ class MyZipFile(zipfile.ZipFile): total_read = 0 crc = None while total_read < zinfo.compress_size: + if zinfo.compress_size - total_read < block_size: + block_size = zinfo.compress_size - total_read buff = self.fp.read(block_size) destfile.write(buff) total_read += (block_size) @@ -190,7 +192,7 @@ class MyZipFile(zipfile.ZipFile): crc = binascii.crc32(buff) destfile.close() self.fp.seek(filepos, 0) - if crc != zinfo.CRC: + if crc and crc != zinfo.CRC: raise zipfile.BadZipfile, "Bad CRC-32 for file %s" % name return elif zinfo.compress_type != zipfile.ZIP_DEFLATED: @@ -207,8 +209,8 @@ class MyZipFile(zipfile.ZipFile): total_read = 0 crc = None while total_read < zinfo.compress_size: - if name == "install.tar.lzma": - print "blalalall", zinfo.compress_size + if zinfo.compress_size - total_read < block_size: + block_size = zinfo.compress_size - total_read buff = self.fp.read(block_size) dcbuff = dc.decompress(dc.unconsumed_tail + buff) destfile.write(dcbuff) @@ -227,7 +229,7 @@ class MyZipFile(zipfile.ZipFile): crc = binascii.crc32(ex) destfile.write(ex) - if crc != zinfo.CRC: + if crc and crc != zinfo.CRC: raise zipfile.BadZipfile, "Bad CRC-32 for file %s" % name destfile.close()