diff options
author | Ned Deily <nad@acm.org> | 2014-03-09 21:44:34 (GMT) |
---|---|---|
committer | Ned Deily <nad@acm.org> | 2014-03-09 21:44:34 (GMT) |
commit | 6120739f0cb1c26069570fea701fe79489f1cd9d (patch) | |
tree | 30e5a50c465b7ea804d697cf7bec8a9d84658b76 /Lib | |
parent | 5e572fd490c625193e043ee6e8a9e54900e008b1 (diff) | |
download | cpython-6120739f0cb1c26069570fea701fe79489f1cd9d.zip cpython-6120739f0cb1c26069570fea701fe79489f1cd9d.tar.gz cpython-6120739f0cb1c26069570fea701fe79489f1cd9d.tar.bz2 |
Issue #20875: Prevent possible gzip "'read' is not defined" NameError.
Patch by Claudiu Popa.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/gzip.py | 2 | ||||
-rw-r--r-- | Lib/test/test_gzip.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Lib/gzip.py b/Lib/gzip.py index 2fd03fa..4ff9820 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -99,7 +99,7 @@ class _PaddedFile: self._read -= len(prepend) return else: - self._buffer = self._buffer[read:] + prepend + self._buffer = self._buffer[self._read:] + prepend self._length = len(self._buffer) self._read = 0 diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py index c94d54e..034acb0 100644 --- a/Lib/test/test_gzip.py +++ b/Lib/test/test_gzip.py @@ -396,6 +396,13 @@ class TestGzip(BaseTest): with gzip.GzipFile(fileobj=io.BytesIO(gzdata)) as f: self.assertEqual(f.read(), b'Test') + def test_prepend_error(self): + # See issue #20875 + with gzip.open(self.filename, "wb") as f: + f.write(data1) + with gzip.open(self.filename, "rb") as f: + f.fileobj.prepend() + class TestOpen(BaseTest): def test_binary_modes(self): uncompressed = data1 * 50 |