Issue #20048: Fixed ZipExtFile.peek() when it is called on the boundary of
the uncompress buffer and read() goes through more than one readbuffer. This is partial backport of changeset 028e8e0b03e8.
This commit is contained in:
parent
0e4d852abf
commit
d105196c72
|
@ -606,7 +606,11 @@ class ZipExtFile(io.BufferedIOBase):
|
|||
"""Returns buffered bytes without advancing the position."""
|
||||
if n > len(self._readbuffer) - self._offset:
|
||||
chunk = self.read(n)
|
||||
self._offset -= len(chunk)
|
||||
if len(chunk) > self._offset:
|
||||
self._readbuffer = chunk + self._readbuffer[self._offset:]
|
||||
self._offset = 0
|
||||
else:
|
||||
self._offset -= len(chunk)
|
||||
|
||||
# Return up to 512 bytes to reduce allocation overhead for tight loops.
|
||||
return self._readbuffer[self._offset: self._offset + 512]
|
||||
|
|
|
@ -27,6 +27,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #20048: Fixed ZipExtFile.peek() when it is called on the boundary of
|
||||
the uncompress buffer and read() goes through more than one readbuffer.
|
||||
|
||||
- Issue #20034: Updated alias mapping to most recent locale.alias file
|
||||
from X.org distribution using makelocalealias.py.
|
||||
|
||||
|
|
Loading…
Reference in New Issue