Fix memory leak when uncompressing concatenated zlib streams. Unit tests and tor client work; looks ok.

svn:r6211
This commit is contained in:
Nick Mathewson
2006-03-21 20:31:27 +00:00
parent 68b3b3ee7c
commit 15e5cf6088
+4 -3
View File
@@ -205,9 +205,10 @@ tor_gzip_uncompress(char **out, size_t *out_len,
if (stream->avail_in == 0)
goto done;
/* There may be more compressed data here. */
/* XXX But if so, this is not the right way to find it. If
* we call inflateInit2 below, stream->state will get
* re-zcalloc'ed and we'll leak the old one. -RD */
if ((r = inflateEnd(stream)) != Z_OK) {
log_warn(LD_GENERAL, "Error freeing gzip structures");
goto err;
}
if (inflateInit2(stream, method_bits(method)) != Z_OK) {
log_warn(LD_GENERAL, "Error from inflateInit2: %s",
stream->msg?stream->msg:"<no message>");