]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-137571: Protect against possible UnboundLocalError in gzip._GzipReader...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 22 May 2026 09:46:05 +0000 (11:46 +0200)
committerGitHub <noreply@github.com>
Fri, 22 May 2026 09:46:05 +0000 (09:46 +0000)
This has not been observed in practice, but we cannot be 100% sure that
it will not happen with some weird gzip data.
(cherry picked from commit 28eac9a7263ad8dcfa9b536aa238549131857e0f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Lib/gzip.py

index c00f51858de0f0d5f04d6b54641cc4147e81a165..7514ad5bf24f26e066782c7f2c78d2c37283f32a 100644 (file)
@@ -575,10 +575,10 @@ class _GzipReader(_streams.DecompressReader):
             # Read a chunk of data from the file
             if self._decompressor.needs_input:
                 buf = self._fp.read(READ_BUFFER_SIZE)
-                uncompress = self._decompressor.decompress(buf, size)
             else:
-                uncompress = self._decompressor.decompress(b"", size)
+                buf = b""
 
+            uncompress = self._decompressor.decompress(buf, size)
             if self._decompressor.unused_data != b"":
                 # Prepend the already read bytes to the fileobj so they can
                 # be seen by _read_eof() and _read_gzip_header()