[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] xen/gunzip: don't leak memory on error paths
commit 473156eec61c162ae73778222283dcc599144030 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Mon May 6 10:08:40 2024 +0200 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Thu May 9 18:19:49 2024 +0100 xen/gunzip: don't leak memory on error paths While decompression errors are likely going to be fatal to Xen's boot process anyway, the latest with the goal of doing multiple decompressor runs it is likely better to avoid leaks even on error paths. All the more when this way code size actually shrinks a tiny bit. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/common/gzip/inflate.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/xen/common/gzip/inflate.c b/xen/common/gzip/inflate.c index 220d2ff4d9..b5b70bfb70 100644 --- a/xen/common/gzip/inflate.c +++ b/xen/common/gzip/inflate.c @@ -757,16 +757,14 @@ static int noinline __init inflate_fixed(void) } /* decompress until an end-of-block code */ - if (inflate_codes(tl, td, bl, bd)) { - free(l); - return 1; - } + i = inflate_codes(tl, td, bl, bd); /* free the decoding tables, return */ free(l); huft_free(tl); huft_free(td); - return 0; + + return !!i; } /* @@ -940,19 +938,17 @@ static int noinline __init inflate_dynamic(void) DEBG("dyn6 "); /* decompress until an end-of-block code */ - if (inflate_codes(tl, td, bl, bd)) { - ret = 1; - goto out; - } + ret = !!inflate_codes(tl, td, bl, bd); - DEBG("dyn7 "); + if ( !ret ) + DEBG("dyn7 "); /* free the decoding tables, return */ huft_free(tl); huft_free(td); - DEBG(">"); - ret = 0; + if ( !ret ) + DEBG(">"); out: free(ll); return ret; -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |