diff options
author | Joe Mistachkin <joe@mistachkin.com> | 2015-06-11 02:47:41 (GMT) |
---|---|---|
committer | Joe Mistachkin <joe@mistachkin.com> | 2015-06-11 02:47:41 (GMT) |
commit | a84a510b3a4fa2f439ab53e964e067d28cef7257 (patch) | |
tree | baf656b15cdfdb49a9507246eb8d3d4e8a18fc19 /generic | |
parent | 66051f76ca26cfef91f41c9df33a0ad1523e00ed (diff) | |
download | tcl-a84a510b3a4fa2f439ab53e964e067d28cef7257.zip tcl-a84a510b3a4fa2f439ab53e964e067d28cef7257.tar.gz tcl-a84a510b3a4fa2f439ab53e964e067d28cef7257.tar.bz2 |
Plug memory leaks in the Tcl_ZlibInflate() error handling code. Fix for ticket [478c446889].
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclZlib.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/generic/tclZlib.c b/generic/tclZlib.c index 956e3f9..c5ccc72 100644 --- a/generic/tclZlib.c +++ b/generic/tclZlib.c @@ -1757,6 +1757,7 @@ Tcl_ZlibInflate( if (headerPtr) { e = inflateGetHeader(&stream, headerPtr); if (e != Z_OK) { + inflateEnd(&stream); goto error; } } @@ -1780,7 +1781,7 @@ Tcl_ZlibInflate( if ((stream.avail_in == 0) && (stream.avail_out > 0)) { e = Z_STREAM_ERROR; - goto error; + break; } newBufferSize = bufferSize + 5 * stream.avail_in; if (newBufferSize == bufferSize) { |