]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Simplify segfault fix
authorNick Terrell <terrelln@fb.com>
Sun, 11 Dec 2016 02:46:55 +0000 (18:46 -0800)
committerNick Terrell <terrelln@fb.com>
Sun, 11 Dec 2016 02:46:55 +0000 (18:46 -0800)
Take advantage of the fact that `chainLog <= windowLog`.

lib/compress/zstd_compress.c

index a575534c3da987d83b2fd61002bb44cbe9f5efde..aef769fc0f4b0dabca965875577c85635a12c7a8 100644 (file)
@@ -2277,7 +2277,7 @@ static size_t ZSTD_compress_generic (ZSTD_CCtx* cctx,
         if (cctx->lowLimit > (1<<30)) {
             U32 const btplus = (cctx->params.cParams.strategy == ZSTD_btlazy2) | (cctx->params.cParams.strategy == ZSTD_btopt) | (cctx->params.cParams.strategy == ZSTD_btopt2);
             U32 const chainMask = (1 << (cctx->params.cParams.chainLog - btplus)) - 1;
-            U32 const supLog = MAX(MAX(cctx->params.cParams.chainLog, 17 /* blockSize */), cctx->params.cParams.windowLog);
+            U32 const supLog = MAX(cctx->params.cParams.windowLog, 17 /* blockSize */);
             U32 const newLowLimit = (cctx->lowLimit & chainMask) + (1 << supLog);   /* preserve position % chainSize, ensure current-repcode doesn't underflow */
             U32 const correction = cctx->lowLimit - newLowLimit;
             ZSTD_reduceIndex(cctx, correction);