]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
ensure cctx internal buffer is correctly sized in case of memory error
authorYann Collet <cyan@fb.com>
Thu, 6 Apr 2017 08:25:26 +0000 (01:25 -0700)
committerYann Collet <cyan@fb.com>
Thu, 6 Apr 2017 08:25:26 +0000 (01:25 -0700)
lib/compress/zstd_compress.c

index 6032e16bc907a01deb6a6621824a80305b318c50..4ad978a4bebfa9ca3ece9abb2670fe65b4096fe1 100644 (file)
@@ -278,6 +278,7 @@ static size_t ZSTD_resetCCtx_advanced (ZSTD_CCtx* zc,
             size_t const neededSpace = tableSpace + (256*sizeof(U32)) /* huffTable */ + tokenSpace
                                   + (((params.cParams.strategy == ZSTD_btopt) || (params.cParams.strategy == ZSTD_btopt2)) ? optSpace : 0);
             if (zc->workSpaceSize < neededSpace) {
+                zc->workSpaceSize = 0;
                 ZSTD_free(zc->workSpace, zc->customMem);
                 zc->workSpace = ZSTD_malloc(neededSpace, zc->customMem);
                 if (zc->workSpace == NULL) return ERROR(memory_allocation);