Opened 6 months ago

Closed 8 weeks ago

#18768 closed enhancement (fixed)

unrar-7.0.7

Reported by: Bruce Dubbs Owned by: Bruce Dubbs
Priority: normal Milestone: 12.2
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New major version.

Change History (8)

comment:1 by Bruce Dubbs, 6 months ago

Summary: unrar-7.0.1unrar-7.0.1 (This is a beta, wait for next release.)

Looking at https://www.rarlab.com/rar_add.htm, this appears to be a beta. Let's wait for at least the next release.

comment:2 by Bruce Dubbs, 6 months ago

It does build without warnings:

md5sum : 2f437ee8cefbcb1557cb3793789f808e  /usr/src/unrar/unrarsrc-7.0.1.tar.gz
248 /usr/src/unrar/unrarsrc-7.0.1.tar.gz SIZE (.242 MB)
2672 kilobytes BUILD SIZE (2.609 MB)
SBU=.350

comment:3 by Bruce Dubbs, 6 months ago

Milestone: 12.199-Waiting

comment:4 by martyj19, 2 months ago

This is no longer marked as a beta and Arch now at 7.0.7.

comment:5 by Xi Ruoyao, 2 months ago

Milestone: 99-Waiting12.2
Summary: unrar-7.0.1 (This is a beta, wait for next release.)unrar-7.0.7

comment:6 by Xi Ruoyao, 2 months ago

Important changes in UnRAR 7.0 decompression aglorithm.

If version of compression algorithm in file header is 1, 80 distance codes (DCX = 80) are used instead of DCB = 64 in basic algorithm. It extends possible distances up to 1 TB.

It also increases the total Huffman table size from HUFF_TABLE_SIZEB to HUFF_TABLE_SIZEX. Unpacking function utilizes ExtraDist variable to know the proper table size.

To allow not power of 2 dictionary sizes, all &MaxWinMask and &=MaxWinMask are replaced with WrapUp and WrapDown functions. In places where it is not performance critical, we can use %MaxWinSize instead of WrapUp. But we can't use %MaxWinSize instead of WrapDown, because here we need the modulo operation instead of reminder.

We added "if (SrcPtr<MaxWinSize)" check to Unpack::CopyString() and FragmentedWindow::CopyString() to properly process malformed archives, where match distance exceeds the declared dictionary size. Also we must use %MaxWinSize instead of WrapUp in Unpack::AddFilter(). Otherwise FilterStart can be outside of dictionary even after WrapUp call when processing a malformed archive.

UnRAR code prohibits unpacking more than 4 GB dictionaries unless an appropriate -md or -mdx switch is specified. It is done to prevent the unexpected excessive memory allocation. If you integrate UnRAR source into your application, it is recommended to either reject such archives or issue a prompt to user. Otherwise a malicious person could send an archive with 1 TB dictionary to a user to allocate all available memory and make the system unresponsive.

FCI_RAR5_COMPAT and UNPACK_MAX_DICT values have been added in UnRAR source code 7.0.3. If earlier version of UnRAR 7 source code was integrated into application, it is necessary to update it to support them.

comment:7 by Bruce Dubbs, 8 weeks ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:8 by Bruce Dubbs, 8 weeks ago

Resolution: fixed
Status: assignedclosed

Fixed at commit 3923e4efed.

Note: See TracTickets for help on using tickets.