diff options
author | qiuguorui1 <qiuguorui1@huawei.com> | 2020-11-30 14:41:25 +0800 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2020-11-30 17:35:36 +0100 |
commit | d4eaff6b84292ca0231505c4aba8cc6b55df79e3 (patch) | |
tree | 7ba39ed951a241c76948556b3634f146e243b3c8 | |
parent | 4149df9005f2cdd2ecf70058dfe7d72f48c3a68c (diff) |
zlib: fix resource leak when gzdirect failed
In function zlib_decompress_file, when gzdirect(fp) fails,
we should gzclose fp before return.
Fixes: d606837b56d46 ("Fix zlib/lzma decompression.")
Signed-off-by: qiuguorui1 <qiuguorui1@huawei.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r-- | kexec/zlib.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kexec/zlib.c b/kexec/zlib.c index 9bc340d..3ed6bd6 100644 --- a/kexec/zlib.c +++ b/kexec/zlib.c @@ -60,7 +60,7 @@ char *zlib_decompress_file(const char *filename, off_t *r_size) gzFile fp; int errnum; const char *msg; - char *buf; + char *buf = NULL; off_t size = 0, allocated; ssize_t result; @@ -78,7 +78,7 @@ char *zlib_decompress_file(const char *filename, off_t *r_size) } if (gzdirect(fp)) { /* It's not in gzip format */ - return NULL; + goto fail; } allocated = 65536; buf = xmalloc(allocated); |