From 982c44d030dbb9eec3ae6522b12838c5f0754070 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 3 Feb 2018 03:34:40 +0100 Subject: bzip2: rewrite bit of code which depends on integer overflow function old new delta sendMTFValues 2093 2070 -23 Signed-off-by: Denys Vlasenko --- archival/libarchive/bz/compress.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'archival/libarchive/bz/compress.c') diff --git a/archival/libarchive/bz/compress.c b/archival/libarchive/bz/compress.c index 377f2f166..271982cf2 100644 --- a/archival/libarchive/bz/compress.c +++ b/archival/libarchive/bz/compress.c @@ -297,7 +297,7 @@ void sendMTFValues(EState* s) // 200..599 = 3 // 600..1199 = 4 // 1200..2399 = 5 - // else 6 + // 2400..99999 = 6 nGroups = 2; nGroups += (s->nMTF >= 200); nGroups += (s->nMTF >= 600); @@ -317,12 +317,12 @@ void sendMTFValues(EState* s) unsigned tFreq, aFreq; tFreq = remF / nPart; - ge = gs - 1; //underflows on 1st iteration + ge = gs; aFreq = 0; - while (aFreq < tFreq && (int)ge < (int)alphaSize-1) { - ge++; - aFreq += s->mtfFreq[ge]; + while (aFreq < tFreq && ge < alphaSize) { + aFreq += s->mtfFreq[ge++]; } + ge--; if (ge > gs && nPart != nGroups && nPart != 1 -- cgit v1.2.3