From: Yann Collet Date: Tue, 30 Aug 2016 13:51:00 +0000 (-0700) Subject: Fixed issue #304, reported by @borzunov X-Git-Tag: v1.0.0^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14200a20f01fc25dfe997d7400513c38c18d984a;p=thirdparty%2Fzstd.git Fixed issue #304, reported by @borzunov --- diff --git a/lib/compress/huf_compress.c b/lib/compress/huf_compress.c index 86a53c2e6..9f92d1717 100644 --- a/lib/compress/huf_compress.c +++ b/lib/compress/huf_compress.c @@ -124,7 +124,8 @@ size_t HUF_writeCTable (void* dst, size_t maxDstSize, if ((size>1) & (size < maxSymbolValue/2)) { /* FSE compressed */ op[0] = (BYTE)size; return size+1; - } } + } + } /* raw values */ if (maxSymbolValue > (256-128)) return ERROR(GENERIC); /* should not happen */ @@ -491,7 +492,7 @@ static size_t HUF_compress_internal ( /* Scan input and build symbol stats */ { size_t const largest = FSE_count (count, &maxSymbolValue, (const BYTE*)src, srcSize); if (HUF_isError(largest)) return largest; - if (largest == srcSize) { *ostart = ((const BYTE*)src)[0]; return 1; } /* rle */ + if (largest == srcSize) { *ostart = ((const BYTE*)src)[0]; return 1; } /* single symbol, rle */ if (largest <= (srcSize >> 7)+1) return 0; /* Fast heuristic : not compressible enough */ } diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index 911dfeb0b..34c6cf3ed 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -2540,8 +2540,9 @@ static size_t ZSTD_compress_insertDictionary(ZSTD_CCtx* zc, const void* dict, si zc->dictID = zc->params.fParams.noDictIDFlag ? 0 : MEM_readLE32((const char*)dict+4); /* known magic number : dict is parsed for entropy stats and content */ - { size_t const eSize = ZSTD_loadDictEntropyStats(zc, (const char*)dict+8 /* skip dictHeader */, dictSize-8) + 8; - if (ZSTD_isError(eSize)) return eSize; + { size_t const eSize_8 = ZSTD_loadDictEntropyStats(zc, (const char*)dict+8 /* skip dictHeader */, dictSize-8); + size_t const eSize = eSize_8 + 8; + if (ZSTD_isError(eSize_8)) return eSize_8; return ZSTD_loadDictionaryContent(zc, (const char*)dict+eSize, dictSize-eSize); } }