diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-02-21 16:10:02 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-02-21 16:10:20 +0000 |
commit | 534d48ffedd7b2050ebccb10ab43d92b8a6248bd (patch) | |
tree | 494dcd1ec9526b2c7eaaa34cf9fafa04016e8e5b /lzip.h | |
parent | Releasing debian version 1.12-3. (diff) | |
download | lunzip-534d48ffedd7b2050ebccb10ab43d92b8a6248bd.tar.xz lunzip-534d48ffedd7b2050ebccb10ab43d92b8a6248bd.zip |
Merging upstream version 1.13.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | lzip.h | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -1,5 +1,5 @@ /* Lunzip - Decompressor for the lzip format - Copyright (C) 2010-2021 Antonio Diaz Diaz. + Copyright (C) 2010-2022 Antonio Diaz Diaz. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -131,6 +131,7 @@ static inline void CRC32_init( void ) } } +/* about as fast as it is possible without messing with endianness */ static inline void CRC32_update_buf( uint32_t * const crc, const uint8_t * const buffer, const int size ) @@ -228,12 +229,12 @@ static inline bool Lt_verify_consistency( const Lzip_trailer data ) { const unsigned crc = Lt_get_data_crc( data ); const unsigned long long dsize = Lt_get_data_size( data ); - const unsigned long long msize = Lt_get_member_size( data ); - const unsigned long long mlimit = ( 9 * dsize + 7 ) / 8 + min_member_size; - const unsigned long long dlimit = 7090 * ( msize - 26 ) - 1; if( ( crc == 0 ) != ( dsize == 0 ) ) return false; + const unsigned long long msize = Lt_get_member_size( data ); if( msize < min_member_size ) return false; + const unsigned long long mlimit = ( 9 * dsize + 7 ) / 8 + min_member_size; if( mlimit > dsize && msize > mlimit ) return false; + const unsigned long long dlimit = 7090 * ( msize - 26 ) - 1; if( dlimit > msize && dsize > dlimit ) return false; return true; } |