From 72c50edd26631c8709e91b5d4b58cf6df3beb521 Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Mon, 9 Sep 2024 13:32:33 -0700 Subject: [PATCH] Don't use chunkunroll for inflateBack If the output buffer and the window buffer are the same memory allocation, we cannot make the assumptions that chunkunroll does, that it is okay to overwrite the output buffer. --- inffast_tpl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inffast_tpl.h b/inffast_tpl.h index 9ddd187d..c8f47867 100644 --- a/inffast_tpl.h +++ b/inffast_tpl.h @@ -249,7 +249,8 @@ void Z_INTERNAL INFLATE_FAST(PREFIX3(stream) *strm, uint32_t start) { if (op < len) { /* still need some from output */ len -= op; out = chunkcopy_safe(out, from, op, safe); - out = CHUNKUNROLL(out, &dist, &len); + if (!extra_safe) + out = CHUNKUNROLL(out, &dist, &len); out = chunkcopy_safe(out, out - dist, len, safe); } else { out = chunkcopy_safe(out, from, len, safe); -- 2.47.3