[issue41486] Add _BlocksOutputBuffer for bz2/lzma/zlib module

Ma Lin report at bugs.python.org
Thu Apr 29 22:55:42 EDT 2021


Ma Lin <malincns at 163.com> added the comment:

Found a backward incompatible behavior. 

Before the patch, in 64-bit build, zlib module allows the initial size > UINT32_MAX.
It creates a bytes object, and uses a sliding window to deal with the UINT32_MAX limit:
https://github.com/python/cpython/blob/v3.9.4/Modules/zlibmodule.c#L183

After the patch, when init_size > UINT32_MAX, it raises a ValueError.

PR 25738 fixes this backward incompatibility.
If the initial size > UINT32_MAX, it clamps to UINT32_MAX, rather than raising an exception.

Moreover, if you don't mind, I would like to take this opportunity to rename the wrapper functions from Buffer_* to OutputBuffer_*, so that the readers can easily distinguish between input buffer and output buffer.
If you don't think it's necessary, you may merge PR 25738 as is.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41486>
_______________________________________


More information about the Python-bugs-list mailing list