[Patch #654421 from Matthew Mueller]
gzip shouldn't raise ValueError on corrupt files
Currently the gzip module will raise a ValueError if the file was
corrupt (bad crc or bad size). I can't see how that applies to
reading a corrupt file. IOError seems better, and it's what code
will likely be looking for.
diff --git a/Lib/gzip.py b/Lib/gzip.py
index 36f9c36..761d941 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -305,9 +305,9 @@
crc32 = read32(self.fileobj)
isize = U32(read32(self.fileobj)) # may exceed 2GB
if U32(crc32) != U32(self.crc):
- raise ValueError, "CRC check failed"
+ raise IOError, "CRC check failed"
elif isize != LOWU32(self.size):
- raise ValueError, "Incorrect length of data produced"
+ raise IOError, "Incorrect length of data produced"
def close(self):
if self.mode == WRITE: