[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: