diff --git a/CHANGES b/CHANGES index 17d4039ee..2ad7ca185 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,10 @@ Changelog +Daniel Stenberg (14 Feb 2009) +- Andre Guibert de Bruet found and fixed a memory leak in the content encoding + code, which could happen on libz errors. + Daniel Fandrich (12 Feb 2009) - Added support for Digest and NTLM authentication using GnuTLS. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 0661de35c..59e442635 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -31,6 +31,7 @@ This release includes the following bugfixes: o multi interface memory leak with CURLMOPT_MAXCONNECTS set o CURLINFO_CONTENT_LENGTH_DOWNLOAD size from file:// "transfers" with CURLOPT_NOBODY set true + o memory leak on some libz errors for content encodings This release includes the following known bugs: @@ -41,6 +42,6 @@ advice from friends like these: Lisa Xu, Daniel Fandrich, Craig A West, Alexey Borzov, Sharad Gupta, Peter Sylvester, Chad Monroe, Markus Moeller, Yang Tse, Scott Cantor, - Patrick Scott, Hidemoto Nakada, Jocelyn Jaubert + Patrick Scott, Hidemoto Nakada, Jocelyn Jaubert, Andre Guibert de Bruet Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/content_encoding.c b/lib/content_encoding.c index 9cd5b0734..0de1c15d6 100644 --- a/lib/content_encoding.c +++ b/lib/content_encoding.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2007, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2007, 2009, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -133,8 +133,9 @@ inflate_stream(struct connectdata *conn, /* some servers seem to not generate zlib headers, so this is an attempt to fix and continue anyway */ - (void) inflateEnd(z); /* don't care about the return code */ + (void) inflateEnd(z); /* don't care about the return code */ if(inflateInit2(z, -MAX_WBITS) != Z_OK) { + free(decomp); return process_zlib_error(conn, z); } z->next_in = orig_in;