[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