From: W. Felix Handte Date: Wed, 26 Aug 2020 22:33:44 +0000 (-0400) Subject: Permit Matching Against Lowest Valid Position X-Git-Tag: v1.4.7~81^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d332f57897394426afb4270de85aecac2a2fce3e;p=thirdparty%2Fzstd.git Permit Matching Against Lowest Valid Position This comparison was previously faulty: the lowest valid position is itself valid, and we should therefore be allowed to match against it. --- diff --git a/lib/compress/zstd_lazy.c b/lib/compress/zstd_lazy.c index 684e7e56e..15df6125e 100644 --- a/lib/compress/zstd_lazy.c +++ b/lib/compress/zstd_lazy.c @@ -544,7 +544,7 @@ size_t ZSTD_HcFindBestMatch_generic ( /* HC4 match finder */ matchIndex = ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, mls); - for ( ; (matchIndex>lowLimit) & (nbAttempts>0) ; nbAttempts--) { + for ( ; (matchIndex>=lowLimit) & (nbAttempts>0) ; nbAttempts--) { size_t currentMl=0; if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { const BYTE* const match = base + matchIndex; @@ -649,7 +649,7 @@ size_t ZSTD_HcFindBestMatch_generic ( matchIndex = dms->hashTable[ZSTD_hashPtr(ip, dms->cParams.hashLog, mls)]; - for ( ; (matchIndex>dmsLowestIndex) & (nbAttempts>0) ; nbAttempts--) { + for ( ; (matchIndex>=dmsLowestIndex) & (nbAttempts>0) ; nbAttempts--) { size_t currentMl=0; const BYTE* const match = dmsBase + matchIndex; assert(match+4 <= dmsEnd);