]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
ensure workspace is large enough 2249/head
authorYann Collet <cyan@fb.com>
Fri, 17 Jul 2020 03:33:50 +0000 (20:33 -0700)
committerYann Collet <cyan@fb.com>
Fri, 17 Jul 2020 03:33:50 +0000 (20:33 -0700)
even when MAX_TABLELOG is reduced

lib/compress/fse_compress.c

index a42759814fdd23c2561235fe6087e56b43aa7fcc..5290a918bea8d9ce2623db10289782d2b2300d8a 100644 (file)
@@ -678,7 +678,10 @@ size_t FSE_compress_wksp (void* dst, size_t dstSize, const void* src, size_t src
 
 typedef struct {
     FSE_CTable CTable_max[FSE_CTABLE_SIZE_U32(FSE_MAX_TABLELOG, FSE_MAX_SYMBOL_VALUE)];
-    BYTE scratchBuffer[1 << FSE_MAX_TABLELOG];
+    union {
+      U32 hist_wksp[HIST_WKSP_SIZE_U32];
+      BYTE scratchBuffer[1 << FSE_MAX_TABLELOG];
+    } workspace;
 } fseWkspMax_t;
 
 size_t FSE_compress2 (void* dst, size_t dstCapacity, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog)