[issue19839] bz2: regression wrt supporting files with trailing garbage after EOF

Fabio Erculiani report at bugs.python.org
Sat Nov 30 11:16:59 CET 2013


New submission from Fabio Erculiani:

In Sabayon Linux and Gentoo Linux, distro package metadata is appended at the end of bz2 files. Python 2.7, 3.1, 3.2 bz2 modules were handling the following attached file just fine, trailing garbage was simply ignored like the bunzip2 utility does.

example test code:
f = bz2.BZ2File(path, mode="rb")
data = f.read(1024)
while data:
    data = f.read(1024)
f.close()

The following code doesn't work with Python 3.3.3 anymore, at some point I receive the following exception (that comes from the bz2 module C code):

  File "/usr/lib64/python3.3/bz2.py", line 278, in read
    return self._read_block(size)
  File "/usr/lib64/python3.3/bz2.py", line 239, in _read_block
    while n > 0 and self._fill_buffer():
  File "/usr/lib64/python3.3/bz2.py", line 203, in _fill_buffer
    self._buffer = self._decompressor.decompress(rawblock)
OSError: Invalid data stream

Please restore the compatibility with bz2 files with trailing garbage after EOF.

----------
components: Library (Lib)
files: sys-libs:zlib-1.2.3-r1~1.tbz2
messages: 204793
nosy: Fabio.Erculiani
priority: normal
severity: normal
status: open
title: bz2: regression wrt supporting files with trailing garbage after EOF
versions: Python 3.3
Added file: http://bugs.python.org/file32904/sys-libs:zlib-1.2.3-r1~1.tbz2

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue19839>
_______________________________________


More information about the Python-bugs-list mailing list