32 lines
1.1 KiB
Diff
32 lines
1.1 KiB
Diff
|
|
From 6d6fc5ae0c920e2ad9e01a3320f3529c7bad977f Mon Sep 17 00:00:00 2001
|
||
|
|
From: jipengfei_yewu <jipengfei_yewu@cmss.chinamobile.com>
|
||
|
|
Date: Mon, 9 Sep 2024 20:14:09 +0800
|
||
|
|
Subject: [PATCH] hw/core/loader: gunzip(): fix memory leak on error path
|
||
|
|
|
||
|
|
We should call inflateEnd() like on success path to cleanup state in s
|
||
|
|
variable.
|
||
|
|
|
||
|
|
Signed-off-by:jipengfei_yewu <jipengfei_yewu@cmss.chinamobile.com>
|
||
|
|
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
|
||
|
|
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
|
||
|
|
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
|
||
|
|
---
|
||
|
|
hw/core/loader.c | 1 +
|
||
|
|
1 file changed, 1 insertion(+)
|
||
|
|
|
||
|
|
diff --git a/hw/core/loader.c b/hw/core/loader.c
|
||
|
|
index 19edb928e9..8389860679 100644
|
||
|
|
--- a/hw/core/loader.c
|
||
|
|
+++ b/hw/core/loader.c
|
||
|
|
@@ -605,6 +605,7 @@ ssize_t gunzip(void *dst, size_t dstlen, uint8_t *src, size_t srclen)
|
||
|
|
r = inflate(&s, Z_FINISH);
|
||
|
|
if (r != Z_OK && r != Z_STREAM_END) {
|
||
|
|
printf ("Error: inflate() returned %d\n", r);
|
||
|
|
+ inflateEnd(&s);
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
dstbytes = s.next_out - (unsigned char *) dst;
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|