From: Tobias Stoeckmann Date: Mon, 6 Jul 2026 15:38:52 +0000 (+0200) Subject: cab: Fix Kraft's inequality check X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=898b63c19beedb8db851659d6a0445a090245994;p=thirdparty%2Flibarchive.git cab: Fix Kraft's inequality check We really have to check if Kraft's inequality is 1 (in our case it's 0x10000) or 0 for an empty tree. Anything else is an error. Signed-off-by: Tobias Stoeckmann --- diff --git a/libarchive/archive_read_support_format_cab.c b/libarchive/archive_read_support_format_cab.c index 9a37fb242..ad7e848be 100644 --- a/libarchive/archive_read_support_format_cab.c +++ b/libarchive/archive_read_support_format_cab.c @@ -3290,7 +3290,7 @@ lzx_make_huffman_table(struct huffman *hf) } } /* Verify Kraft's inequality. */ - if ((ptn & 0xffff) != 0 || maxbits > hf->tbl_bits) + if ((ptn != 0 && ptn != 0x10000) || maxbits > hf->tbl_bits) return (0);/* Invalid */ hf->max_bits = maxbits;