commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nico Kruber (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COMPRESS-244) 7z reading of UINT64 data type is wrong for big values
Date Wed, 27 Nov 2013 09:59:37 GMT

    [ https://issues.apache.org/jira/browse/COMPRESS-244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13833619#comment-13833619
] 

Nico Kruber commented on COMPRESS-244:
--------------------------------------

ok, thank you, too

> 7z reading of UINT64 data type is wrong for big values
> ------------------------------------------------------
>
>                 Key: COMPRESS-244
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-244
>             Project: Commons Compress
>          Issue Type: Bug
>          Components: Archivers
>    Affects Versions: 1.6
>            Reporter: Nico Kruber
>              Labels: easyfix, patch
>             Fix For: 1.7
>
>         Attachments: fix-readUint64-for-large-values.diff
>
>
> h2. Brief description
> large values with a first byte indicating at least 4 additional bytes shift an integer
by at least 32bits thus leading to an overflow and an incorrect value - the value needs to
be casted to long before the bitshift!
> (see the attached patch)
> h2. Details from the 7z documentation
> {quote}
> {noformat}
> UINT64 means real UINT64 encoded with the following scheme:
>   Size of encoding sequence depends from first byte:
>   First_Byte  Extra_Bytes        Value
>   (binary)   
>   0xxxxxxx               : ( xxxxxxx           )
>   10xxxxxx    BYTE y[1]  : (  xxxxxx << (8 * 1)) + y
>   110xxxxx    BYTE y[2]  : (   xxxxx << (8 * 2)) + y
>   ...
>   1111110x    BYTE y[6]  : (       x << (8 * 6)) + y
>   11111110    BYTE y[7]  :                         y
>   11111111    BYTE y[8]  :                         y
> {noformat}
> {quote}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message