diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-03 03:34:40 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-03 03:34:40 +0100 |
commit | 982c44d030dbb9eec3ae6522b12838c5f0754070 (patch) | |
tree | 2c2a2bb0b9d2a3f4f01bd10f0096ecb21a209e8a | |
parent | 83dd4ff69631f8def367920b3353e112b93fcc87 (diff) | |
download | busybox-w32-982c44d030dbb9eec3ae6522b12838c5f0754070.tar.gz busybox-w32-982c44d030dbb9eec3ae6522b12838c5f0754070.tar.bz2 busybox-w32-982c44d030dbb9eec3ae6522b12838c5f0754070.zip |
bzip2: rewrite bit of code which depends on integer overflow
function old new delta
sendMTFValues 2093 2070 -23
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | archival/libarchive/bz/compress.c | 10 |
1 files changed, 5 insertions, 5 deletions
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) | |||
297 | // 200..599 = 3 | 297 | // 200..599 = 3 |
298 | // 600..1199 = 4 | 298 | // 600..1199 = 4 |
299 | // 1200..2399 = 5 | 299 | // 1200..2399 = 5 |
300 | // else 6 | 300 | // 2400..99999 = 6 |
301 | nGroups = 2; | 301 | nGroups = 2; |
302 | nGroups += (s->nMTF >= 200); | 302 | nGroups += (s->nMTF >= 200); |
303 | nGroups += (s->nMTF >= 600); | 303 | nGroups += (s->nMTF >= 600); |
@@ -317,12 +317,12 @@ void sendMTFValues(EState* s) | |||
317 | unsigned tFreq, aFreq; | 317 | unsigned tFreq, aFreq; |
318 | 318 | ||
319 | tFreq = remF / nPart; | 319 | tFreq = remF / nPart; |
320 | ge = gs - 1; //underflows on 1st iteration | 320 | ge = gs; |
321 | aFreq = 0; | 321 | aFreq = 0; |
322 | while (aFreq < tFreq && (int)ge < (int)alphaSize-1) { | 322 | while (aFreq < tFreq && ge < alphaSize) { |
323 | ge++; | 323 | aFreq += s->mtfFreq[ge++]; |
324 | aFreq += s->mtfFreq[ge]; | ||
325 | } | 324 | } |
325 | ge--; | ||
326 | 326 | ||
327 | if (ge > gs | 327 | if (ge > gs |
328 | && nPart != nGroups && nPart != 1 | 328 | && nPart != nGroups && nPart != 1 |