diff options
author | Daniel Stenberg <daniel@haxx.se> | 2009-05-11 09:55:28 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2009-05-11 09:55:28 +0000 |
commit | 242a17b9e0e430ba5933f7b2ae5586233ec35f33 (patch) | |
tree | 374f0c965defded30a4b3102add2251450f10ada /lib/content_encoding.c | |
parent | 6e1632c60688a7c801bc25c8bb79bb937b605da8 (diff) | |
download | curl-242a17b9e0e430ba5933f7b2ae5586233ec35f33.tar.gz |
- Balint Szilakszi reported a memory leak when libcurl did gzip decompression
of streams that had some parts (legitimately) missing. We now provide and use
a proper cleanup function for the content encoding submodule.
http://curl.haxx.se/mail/lib-2009-05/0092.html
Diffstat (limited to 'lib/content_encoding.c')
-rw-r--r-- | lib/content_encoding.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/content_encoding.c b/lib/content_encoding.c index 411f21337..08cf1dccc 100644 --- a/lib/content_encoding.c +++ b/lib/content_encoding.c @@ -414,4 +414,14 @@ Curl_unencode_gzip_write(struct connectdata *conn, return inflate_stream(conn, k); #endif } + +void Curl_unencode_cleanup(struct connectdata *conn) +{ + struct SessionHandle *data = conn->data; + struct SingleRequest *k = &data->req; + z_stream *z = &k->z; + if(k->zlib_init != ZLIB_UNINIT) + (void) exit_zlib(z, &k->zlib_init, CURLE_OK); +} + #endif /* HAVE_LIBZ */ |