From: Yann Collet Date: Fri, 29 Jul 2016 23:09:14 +0000 (+0200) Subject: fixed too large selectivity level, reported by Ilona Papava X-Git-Tag: v0.8.0^2~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70a9ff4af31b0580abde8f8abbd4c1921b37340b;p=thirdparty%2Fzstd.git fixed too large selectivity level, reported by Ilona Papava --- diff --git a/lib/dictBuilder/zdict.c b/lib/dictBuilder/zdict.c index 84272d194..e1bece3a7 100644 --- a/lib/dictBuilder/zdict.c +++ b/lib/dictBuilder/zdict.c @@ -879,7 +879,7 @@ size_t ZDICT_trainFromBuffer_unsafe( U32 const dictListSize = MAX(MAX(DICTLISTSIZE, nbSamples), (U32)(maxDictSize/16)); dictItem* const dictList = (dictItem*)malloc(dictListSize * sizeof(*dictList)); unsigned const selectivity = params.selectivityLevel == 0 ? g_selectivity_default : params.selectivityLevel; - unsigned const minRep = nbSamples >> selectivity; + unsigned const minRep = (selectivity > 30) ? 1 : nbSamples >> selectivity; size_t const targetDictSize = maxDictSize; size_t const samplesBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); size_t dictSize = 0;