Issue #20078: Reading malformed zipfiles no longer hangs with 100% CPU
consumption.
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index 92c98ab..a1b3414 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -860,6 +860,8 @@
 
         data = self._fileobj.read(n)
         self._compress_left -= len(data)
+        if not data:
+            raise EOFError
 
         if self._decrypter is not None:
             data = bytes(map(self._decrypter, data))