changeset: 88117:8b097d07488d branch: 2.7 parent: 88084:81f8375e60ce user: Serhiy Storchaka date: Sat Dec 21 23:51:15 2013 +0200 files: Lib/zipfile.py Misc/NEWS description: 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. diff -r 81f8375e60ce -r 8b097d07488d Lib/zipfile.py --- a/Lib/zipfile.py Fri Dec 20 18:22:38 2013 +0200 +++ b/Lib/zipfile.py Sat Dec 21 23:51:15 2013 +0200 @@ -606,7 +606,11 @@ """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] diff -r 81f8375e60ce -r 8b097d07488d Misc/NEWS --- a/Misc/NEWS Fri Dec 20 18:22:38 2013 +0200 +++ b/Misc/NEWS Sat Dec 21 23:51:15 2013 +0200 @@ -27,6 +27,9 @@ 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.

AltStyle によって変換されたページ (->オリジナル) /