Package: ftp.debian.org Severity: normal X-Debbugs-Cc: python-pyp...@packages.debian.org Control: affects -1 + src:python-pyppmd User: ftp.debian....@packages.debian.org Usertags: remove
Hi ftpmaster, While adding pybuild test support to python-pyppmd, we noticed that some encoding and decoding cycles were failing to restore compressed user data on big-endian architectures, for instance on s390x[1]: _____________________ test_ppmd8_encode_decode[1048576-1] ______________________ tmp_path = PosixPath('/tmp/pytest-of-buildd/pytest-1/test_ppmd8_encode_decode_104851') mem_size = 1048576, restore_method = 1 @pytest.mark.parametrize( "mem_size, restore_method", [ (8 << 20, pyppmd.PPMD8_RESTORE_METHOD_RESTART), (8 << 20, pyppmd.PPMD8_RESTORE_METHOD_CUT_OFF), (1 << 20, pyppmd.PPMD8_RESTORE_METHOD_RESTART), (1 << 20, pyppmd.PPMD8_RESTORE_METHOD_CUT_OFF), ], ) @pytest.mark.timeout(20) def test_ppmd8_encode_decode(tmp_path, mem_size, restore_method): length = 0 m = hashlib.sha256() with testdata_path.joinpath("10000SalesRecords.csv").open("rb") as f: with tmp_path.joinpath("target.ppmd").open("wb") as target: enc = pyppmd.Ppmd8Encoder(6, mem_size, restore_method=restore_method) data = f.read(READ_BLOCKSIZE) while len(data) > 0: m.update(data) length += len(data) target.write(enc.encode(data)) data = f.read(READ_BLOCKSIZE) target.write(enc.flush(endmark=True)) shash = m.digest() m2 = hashlib.sha256() assert length == 1237262 length = 0 with tmp_path.joinpath("target.ppmd").open("rb") as target: with tmp_path.joinpath("target.csv").open("wb") as out: dec = pyppmd.Ppmd8Decoder(6, mem_size, restore_method=restore_method) data = target.read(READ_BLOCKSIZE) while not dec.eof: res = dec.decode(data) m2.update(res) out.write(res) length += len(res) if len(data) == 0: break data = target.read(READ_BLOCKSIZE) > assert length == 1237262 E assert 1237261 == 1237262 tests/test_ppmd8.py:91: AssertionError [1]: https://buildd.debian.org/status/fetch.php?pkg=python-pyppmd&arch=s390x&ver=1.1.0%2Bds-2&stamp=1714557172&raw=0 If left as is, we suspect the package could corrupt user data and is is not fit for release on big-endian systems. It should be removed from the archive until such configuration is properly supported. Please remove python-pyppmd from s390x release architecture. Have a nice day, :) -- .''`. Étienne Mollier <emoll...@debian.org> : :' : pgp: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da `. `' sent from /dev/pts/0, please excuse my verbosity `-
signature.asc
Description: PGP signature