mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
Treat Z_BUF_ERROR as TOR_ZLIB_BUF_FULL when finalizing a zlib buffer
Otherwise, when we're out of input *and* finalizing, we might report
TOR_ZLIB_OK erroneously and not finalize the buffer.
(I don't believe this can happen in practice, with our code today:
write_to_buf_zlib ensures that we are never trying to write into a
completely empty buffer, and zlib says "Z_OK" if you give it even
one byte to write into.)
Fixes bug 11824; bugfix on 0.1.1.23 (06e09cdd47
).
This commit is contained in:
parent
ad8977e394
commit
7573e66b99
5
changes/bug11824
Normal file
5
changes/bug11824
Normal file
@ -0,0 +1,5 @@
|
||||
o Minor bugfixes:
|
||||
- When trying to finalize a zlib stream where we have already
|
||||
exhausted all the input bytes and we need more bytes in the
|
||||
output buffer, do not report the the write as successful.
|
||||
Fixes bug 11824; bugfix on 0.1.1.23.
|
@ -480,7 +480,7 @@ tor_zlib_process(tor_zlib_state_t *state,
|
||||
case Z_STREAM_END:
|
||||
return TOR_ZLIB_DONE;
|
||||
case Z_BUF_ERROR:
|
||||
if (state->stream.avail_in == 0)
|
||||
if (state->stream.avail_in == 0 && !finish)
|
||||
return TOR_ZLIB_OK;
|
||||
return TOR_ZLIB_BUF_FULL;
|
||||
case Z_OK:
|
||||
|
Loading…
Reference in New Issue
Block a user