From ac677794d61dc7a6f92b16946863043da890c828 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 10 Dec 2008 13:14:13 +0000 Subject: libxc: Fix memory leak in zlib usage Any call to inflate() must be followed by inflateEnd(), otherwise the internal zlib state is leaked. Signed-off-by: Kevin Wolf --- tools/libxc/xc_dom_core.c | 1 + tools/libxc/xg_private.c | 1 + 2 files changed, 2 insertions(+) (limited to 'tools') diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c index 2b6f6b6868..b1e90d8d6e 100644 --- a/tools/libxc/xc_dom_core.c +++ b/tools/libxc/xc_dom_core.c @@ -244,6 +244,7 @@ int xc_dom_do_gunzip(void *src, size_t srclen, void *dst, size_t dstlen) return -1; } rc = inflate(&zStream, Z_FINISH); + inflateEnd(&zStream); if ( rc != Z_STREAM_END ) { xc_dom_panic(XC_INTERNAL_ERROR, diff --git a/tools/libxc/xg_private.c b/tools/libxc/xg_private.c index d7620933cd..544d089cdf 100644 --- a/tools/libxc/xg_private.c +++ b/tools/libxc/xg_private.c @@ -131,6 +131,7 @@ char *xc_inflate_buffer(const char *in_buf, unsigned long in_size, /* Inflate in one pass/call */ sts = inflate(&zStream, Z_FINISH); + inflateEnd(&zStream); if ( sts != Z_STREAM_END ) { ERROR("inflate failed, sts %d\n", sts); -- cgit v1.2.3