The "zs.total_out < destsize" should have been "zs.avail_out" to be more robust to total_out being reset by inflateReset. However looking again neither the avail_in or avail_out checks are necessary, as once we hit the end of either input or output buffer the next cycle triggers ret == Z_BUF_ERROR and we drop out as normal.
The "zs.total_out < destsize" should have been "zs.avail_out" to be more robust to total_out being reset by inflateReset. However looking again neither the avail_in or avail_out checks are necessary, as once we hit the end of either input or output buffer the next cycle triggers ret == Z_BUF_ERROR and we drop out as normal.
Thanks to John Marshall for the spot.
See #1643