]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Add rails for huffman table log calculation (#3047)
authorbinhdvo <binhvo@gmail.com>
Wed, 2 Feb 2022 20:12:48 +0000 (15:12 -0500)
committerGitHub <noreply@github.com>
Wed, 2 Feb 2022 20:12:48 +0000 (15:12 -0500)
lib/compress/huf_compress.c
lib/compress/zstd_compress.c

index d1b98afdb4267a535c2a4bbc37b4c748848b7545..a8677733b1077aa11706d4ad17993e45adece3b0 100644 (file)
@@ -1224,7 +1224,10 @@ static size_t HUF_compressCTable_internal(
 
 unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue)
 {
-    return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 1);
+    unsigned tableLog = FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 1);
+    assert(tableLog <= HUF_TABLELOG_MAX);
+
+    return tableLog;
 }
 
 typedef struct {
index eda38480b5b42da7cd6a3d3f0d6544fdfa217136..37b6e2ff4214dfc2ddb57ba6cb004462cc4f982e 100644 (file)
@@ -3112,6 +3112,7 @@ static size_t ZSTD_buildBlockEntropyStats_literals(void* const src, size_t srcSi
     /* Build Huffman Tree */
     ZSTD_memset(nextHuf->CTable, 0, sizeof(nextHuf->CTable));
     huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue);
+    assert(huffLog <= LitHufLog);
     {   size_t const maxBits = HUF_buildCTable_wksp((HUF_CElt*)nextHuf->CTable, countWksp,
                                                     maxSymbolValue, huffLog,
                                                     nodeWksp, nodeWkspSize);