# This is a backport of following upstream patch: # HG changeset patch # User Serhiy Storchaka # Date 1389272021 -7200 # Node ID 79ea4ce431b1b10c79f51dcb2aaa0ccb2a8b1d48 # Parent 9e3f5b5bcf7e4c62475bb1126fd0aecbbb9b64ac# Parent 0cf1defd5ac4433b8e36f950ba452103eb417f9f Issue #20078: Reading malformed zipfiles no longer hangs with 100% CPU consumption. diff --git a/Lib/zipfile.py b/Lib/zipfile.py --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -862,6 +862,8 @@ class ZipExtFile(io.BufferedIOBase): 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))