@ -488,12 +488,6 @@ copy_file (int ifd, const char *datafile, int pad)
int size ;
int size ;
struct image_type_params * tparams = imagetool_get_type ( params . type ) ;
struct image_type_params * tparams = imagetool_get_type ( params . type ) ;
if ( pad > = sizeof ( zeros ) ) {
fprintf ( stderr , " %s: Can't pad to %d \n " ,
params . cmdname , pad ) ;
exit ( EXIT_FAILURE ) ;
}
memset ( zeros , 0 , sizeof ( zeros ) ) ;
memset ( zeros , 0 , sizeof ( zeros ) ) ;
if ( params . vflag ) {
if ( params . vflag ) {
@ -563,11 +557,18 @@ copy_file (int ifd, const char *datafile, int pad)
exit ( EXIT_FAILURE ) ;
exit ( EXIT_FAILURE ) ;
}
}
} else if ( pad > 1 ) {
} else if ( pad > 1 ) {
if ( write ( ifd , ( char * ) & zeros , pad ) ! = pad ) {
while ( pad > 0 ) {
fprintf ( stderr , " %s: Write error on %s: %s \n " ,
int todo = sizeof ( zeros ) ;
params . cmdname , params . imagefile ,
strerror ( errno ) ) ;
if ( todo > pad )
exit ( EXIT_FAILURE ) ;
todo = pad ;
if ( write ( ifd , ( char * ) & zeros , todo ) ! = todo ) {
fprintf ( stderr , " %s: Write error on %s: %s \n " ,
params . cmdname , params . imagefile ,
strerror ( errno ) ) ;
exit ( EXIT_FAILURE ) ;
}
pad - = todo ;
}
}
}
}