mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Merged revisions 70523 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r70523 | lars.gustaebel | 2009-03-22 21:09:33 +0100 (Sun, 22 Mar 2009) | 5 lines Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop forever on incomplete input. That caused tarfile.open() to hang when used with mode 'r' or 'r:bz2' and a fileobj argument that contained no data or partial bzip2 compressed data. ........
This commit is contained in:
parent
db08306bc2
commit
42e0091208
3 changed files with 34 additions and 5 deletions
|
@ -639,12 +639,11 @@ class _BZ2Proxy(object):
|
|||
def read(self, size):
|
||||
x = len(self.buf)
|
||||
while x < size:
|
||||
try:
|
||||
raw = self.fileobj.read(self.blocksize)
|
||||
data = self.bz2obj.decompress(raw)
|
||||
self.buf += data
|
||||
except EOFError:
|
||||
raw = self.fileobj.read(self.blocksize)
|
||||
if not raw:
|
||||
break
|
||||
data = self.bz2obj.decompress(raw)
|
||||
self.buf += data
|
||||
x += len(data)
|
||||
|
||||
buf = self.buf[:size]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue