1
0
Fork 0

Merging upstream version 1.25~pre1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-21 11:33:15 +01:00
parent 8062cdcacd
commit 3e4c2fba01
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
60 changed files with 5261 additions and 1250 deletions

View file

@ -440,7 +440,7 @@ int reproduce_member( uint8_t * const mbuffer, const long msize,
(const uint8_t *)mmap( 0, rsize, PROT_READ, MAP_PRIVATE, rfd, 0 );
close( rfd );
if( rbuf == MAP_FAILED )
{ show_file_error( reference_filename, "Can't mmap", errno );
{ show_file_error( reference_filename, mmap_msg, errno );
return fatal( 1 ); }
const Lzip_header & header = *(const Lzip_header *)mbuffer;
@ -457,8 +457,8 @@ int reproduce_member( uint8_t * const mbuffer, const long msize,
const long offset = match_file( *master, rbuf, rsize, reference_filename );
if( offset < 0 ) { delete master; return 2; } // no match
// Reference data from offset must be at least as large as zeroed sector
// minus member trailer if trailer is inside the zeroed sector.
/* Reference data from offset must be at least as large as zeroed sector
minus member trailer if trailer is inside the zeroed sector. */
const int t = ( begin + size >= msize ) ? 16 + Lzip_trailer::size : 0;
if( rsize - offset < size - t )
{ show_file_error( reference_filename, "Not enough reference data after match." );
@ -567,7 +567,7 @@ int reproduce_file( const std::string & input_filename,
uint8_t * const mbuffer_base = (uint8_t *)mmap( 0, msize + mpos_rem,
PROT_READ | PROT_WRITE, MAP_PRIVATE, infd, mpos - mpos_rem );
if( mbuffer_base == MAP_FAILED )
{ show_file_error( filename, "Can't mmap", errno ); return 1; }
{ show_file_error( filename, mmap_msg, errno ); return 1; }
uint8_t * const mbuffer = mbuffer_base + mpos_rem;
long size = 0;
uint8_t value = 0;
@ -627,7 +627,8 @@ int reproduce_file( const std::string & input_filename,
std::fputs( "One member reproduced."
" Copy of input file still contains errors.\n", stdout );
else
std::fputs( "Copy of input file reproduced successfully.\n", stdout );
std::printf( "Repaired copy of '%s' written to '%s'\n",
filename, output_filename.c_str() );
}
return 0;
}
@ -686,7 +687,7 @@ int debug_reproduce_file( const char * const input_filename,
uint8_t * const mbuffer_base = (uint8_t *)mmap( 0, msize + mpos_rem,
PROT_READ | PROT_WRITE, MAP_PRIVATE, infd, mpos - mpos_rem );
if( mbuffer_base == MAP_FAILED )
{ show_file_error( input_filename, "Can't mmap", errno ); return 1; }
{ show_file_error( input_filename, mmap_msg, errno ); return 1; }
uint8_t * const mbuffer = mbuffer_base + mpos_rem;
if( !md5_valid )
{
@ -762,18 +763,18 @@ int debug_reproduce_file( const char * const input_filename,
done:
if( verbosity >= 0 )
{
std::printf( "\n%9ld sectors tested"
"\n%9ld reproductions returned with zero status",
positions, successes );
std::printf( "\n%11s sectors tested"
"\n%11s reproductions returned with zero status",
format_num3( positions ), format_num3( successes ) );
if( successes > 0 )
{
if( failed_comparisons > 0 )
std::printf( ", of which\n%9ld comparisons failed\n",
failed_comparisons );
else std::fputs( "\n all comparisons passed\n", stdout );
std::printf( ", of which\n%11s comparisons failed\n",
format_num3( failed_comparisons ) );
else std::fputs( "\n all comparisons passed\n", stdout );
if( alternative_reproductions > 0 )
std::printf( "%9ld alternative reproductions found\n",
alternative_reproductions );
std::printf( "%11s alternative reproductions found\n",
format_num3( alternative_reproductions ) );
}
else std::fputc( '\n', stdout );
if( fatal_retval )