[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: [PATCH 1/2] gzip: fix compression level bug. Closes 9131
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2016-08-16 15:33:51
Message-ID: CAK1hOcPtbV5DnyiY2VtjOC1TQT+TSTrxZ_ekF9rcO+LJBVXnoQ () mail ! gmail ! com
[Download RAW message or body]
ok
On Mon, Aug 15, 2016 at 9:15 AM, Natanael Copa <n@tanael.org> wrote:
> Thanks!
>
> It should go to fixes-1.25.0 too.
>
>
>> 15. aug. 2016 kl. 01.27 skrev Denys Vlasenko <vda.linux@googlemail.com>:
>>
>> Applied, thanks.
>>
>> On Wed, Aug 3, 2016 at 4:21 PM, Natanael Copa <ncopa@alpinelinux.org> wrote:
>>> fix broken logic to get the gzip_level_config value from options -1 to
>>> -9.
>>>
>>> This fixes an off-by-one bug that caused gzip -9 output bigger files
>>> than the other compression levels.
>>>
>>> It fixes so that compression level 1 to 3 are actually mapped to level 4
>>> as comments say.
>>>
>>> It also fixes that levels -4 to -9 is mapped to correct level and avoids
>>> out-of-bounds access.
>>>
>>> Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
>>> ---
>>>
>>> See https://bugs.busybox.net/show_bug.cgi?id=9131 for more details
>>>
>>> archival/gzip.c | 5 +----
>>> 1 file changed, 1 insertion(+), 4 deletions(-)
>>>
>>> diff --git a/archival/gzip.c b/archival/gzip.c
>>> index 8f1e4ff..15ba57c 100644
>>> --- a/archival/gzip.c
>>> +++ b/archival/gzip.c
>>> @@ -2220,10 +2220,7 @@ int gzip_main(int argc UNUSED_PARAM, char **argv)
>>> opt >>= ENABLE_GUNZIP ? 7 : 5; /* drop cfv[dt]qn bits */
>>> if (opt == 0)
>>> opt = 1 << 6; /* default: 6 */
>>> - /* Map 1..3 to 4 */
>>> - if (opt & 0x7)
>>> - opt |= 1 << 4;
>>> - opt = ffs(opt >> 3);
>>> + opt = ffs(opt >> 4); /* Maps 1..3 to 4 */
>>> max_chain_length = 1 << gzip_level_config[opt].chain_shift;
>>> good_match = gzip_level_config[opt].good;
>>> max_lazy_match = gzip_level_config[opt].lazy2 * 2;
>>> --
>>> 2.9.1
>>>
>>> _______________________________________________
>>> busybox mailing list
>>> busybox@busybox.net
>>> http://lists.busybox.net/mailman/listinfo/busybox
>
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic