1
0
Fork 0

Merging upstream version 1.12~rc1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-24 04:19:50 +01:00
parent 4ddb634c25
commit cd6a248630
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
24 changed files with 874 additions and 719 deletions

View file

@ -45,9 +45,8 @@ int seek_read( const int fd, uint8_t * const buf, const int size,
bool Lzip_index::check_header( const Lzip_header & header, const bool first )
{
if( !header.check_magic() )
{ error_ = bad_magic_msg; retval_ = 2; if( first ) bad_magic_ = true;
return false; }
if( header.check_magic() ) { if( first ) good_magic_ = true; }
else { error_ = bad_magic_msg; retval_ = 2; return false; }
if( !header.check_version() )
{ error_ = bad_version( header.version() ); retval_ = 2; return false; }
if( !isvalid_ds( header.dictionary_size() ) )
@ -145,20 +144,20 @@ bool Lzip_index::skip_trailing_data( const int fd, unsigned long long & pos,
Lzip_index::Lzip_index( const int infd, const Cl_options & cl_opts )
: insize( lseek( infd, 0, SEEK_END ) ), retval_( 0 ), dictionary_size_( 0 ),
bad_magic_( false )
good_magic_( false )
{
if( insize < 0 )
{ set_errno_error( "Input file is not seekable: " ); return; }
Lzip_header header;
if( insize >= header.size &&
( !read_header( infd, header, 0 ) ||
!check_header( header, true ) ) ) return;
if( insize < min_member_size )
{ error_ = "Input file is too short."; retval_ = 2; return; }
if( insize > INT64_MAX )
{ error_ = "Input file is too long (2^63 bytes or more).";
retval_ = 2; return; }
Lzip_header header;
if( !read_header( infd, header, 0 ) ||
!check_header( header, true ) ) return;
unsigned long long pos = insize; // always points to a header or to EOF
while( pos >= min_member_size )
{