bpo-41486: zlib uses an UINT32_MAX sliding window for the output buffer (GH-26143)
* zlib uses an UINT32_MAX sliding window for the output buffer These funtions have an initial output buffer size parameter: - zlib.decompress(data, /, wbits=MAX_WBITS, bufsize=DEF_BUF_SIZE) - zlib.Decompress.flush([length]) If the initial size > UINT32_MAX, use an UINT32_MAX sliding window, instead of clamping to UINT32_MAX. Speed up when (the initial size == the actual size). This fixes a memory consumption and copying performance regression in earlier 3.10 beta releases if someone used an output buffer larger than 4GiB with zlib.decompress. Reviewed-by: Gregory P. Smith (cherry picked from commit a9a69bb3ea1e6cf54513717212aaeae0d61b24ee) Co-authored-by: Ma Lin <animalize@users.noreply.github.com>
M
Miss Islington (bot) committed
22bcc0768e0f7eda2ae4de63aef113b1ddb4ddef
Parent: 68330b6
Committed by GitHub <noreply@github.com>
on 7/5/2021, 1:32:56 AM