summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Law <objecting@objecting.org>2026-03-06 16:16:12 +0000
committerAndrew Morton <akpm@linux-foundation.org>2026-03-27 21:19:41 -0700
commitbc6cc36855e9ebcf0c7e01f980ad67bcb0e50bdb (patch)
treee2463e4740b41474f8996b5303479c8f86c924c1
parente54f7f67e9b361b3213b5b75e0cf7167c1105fc7 (diff)
lib/inflate: fix memory leak in inflate_fixed() on inflate_codes() failure
When inflate_codes() fails in inflate_fixed(), only the length list 'l' is freed, but the Huffman tables 'tl' and 'td' are leaked. Add the missing huft_free() calls on the error path. Link: https://lkml.kernel.org/r/20260306161612.2811703-1-objecting@objecting.org Signed-off-by: Josh Law <objecting@objecting.org> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--lib/inflate.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/inflate.c b/lib/inflate.c
index eab886baa1b4..5b1e70d0ce8c 100644
--- a/lib/inflate.c
+++ b/lib/inflate.c
@@ -811,6 +811,8 @@ DEBG("<fix");
/* decompress until an end-of-block code */
if (inflate_codes(tl, td, bl, bd)) {
+ huft_free(tl);
+ huft_free(td);
free(l);
return 1;
}