]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Fix bug in zstd v0.{5, 6} dictionary decompression 443/head
authorNick Terrell <terrelln@fb.com>
Fri, 4 Nov 2016 23:18:59 +0000 (16:18 -0700)
committerNick Terrell <terrelln@fb.com>
Fri, 4 Nov 2016 23:18:59 +0000 (16:18 -0700)
Introduced by bb68062c590dbd46905907dd2a63a658040a79d4.

lib/legacy/zstd_v05.c
lib/legacy/zstd_v06.c

index 201bf3c6b422443d0196b0b95d9da35b9dbdbcea..f63a97fd73e394ada51cf19a4f69b040e154465f 100644 (file)
@@ -2996,7 +2996,7 @@ size_t ZSTDv05_decodeLiteralsBlock(ZSTDv05_DCtx* dctx,
             lhSize=3;
             litSize  = ((istart[0] & 15) << 6) + (istart[1] >> 2);
             litCSize = ((istart[1] &  3) << 8) + istart[2];
-            if (litCSize + litSize > srcSize) return ERROR(corruption_detected);
+            if (litCSize + lhSize > srcSize) return ERROR(corruption_detected);
 
             errorCode = HUFv05_decompress1X4_usingDTable(dctx->litBuffer, litSize, istart+lhSize, litCSize, dctx->hufTableX4);
             if (HUFv05_isError(errorCode)) return ERROR(corruption_detected);
index b6fde3aa6fb1138441b11c2d66427f046af6ec4c..88be49438a6b158e88846370436f057ae9cf03f8 100644 (file)
@@ -3186,7 +3186,7 @@ size_t ZSTDv06_decodeLiteralsBlock(ZSTDv06_DCtx* dctx,
             lhSize=3;
             litSize  = ((istart[0] & 15) << 6) + (istart[1] >> 2);
             litCSize = ((istart[1] &  3) << 8) + istart[2];
-            if (litCSize + litSize > srcSize) return ERROR(corruption_detected);
+            if (litCSize + lhSize > srcSize) return ERROR(corruption_detected);
 
             {   size_t const errorCode = HUFv06_decompress1X4_usingDTable(dctx->litBuffer, litSize, istart+lhSize, litCSize, dctx->hufTableX4);
                 if (HUFv06_isError(errorCode)) return ERROR(corruption_detected);