tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 411074501789d742b412034a9299c8e3d0569347
parent 3a073c463dbade2171a1a6ec1558bd81c0ff27f9
Author: Nick Mathewson <nickm@torproject.org>
Date:   Thu, 28 Sep 2017 18:54:18 -0400

Merge branch 'maint-0.3.1'

Diffstat:
Achanges/bug23551 | 3+++
Msrc/common/compress.c | 7+++++++
2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/changes/bug23551 b/changes/bug23551 @@ -0,0 +1,3 @@ + o Minor bugfixes (compression): + - Handle a pathological case when decompressing Zstandard data when the + output buffer size is zero. Fixes bug 23551; bugfix on 0.3.1.1-alpha. diff --git a/src/common/compress.c b/src/common/compress.c @@ -547,6 +547,13 @@ tor_compress_process(tor_compress_state_t *state, const size_t out_len_orig = *out_len; tor_compress_output_t rv; + if (*out_len == 0 && (*in_len > 0 || finish)) { + // If we still have input data, but no space for output data, we might as + // well return early and let the caller do the reallocation of the out + // variable. + return TOR_COMPRESS_BUFFER_FULL; + } + switch (state->method) { case GZIP_METHOD: case ZLIB_METHOD: