[PATCH v1 1/1] mkimage: Fix error message if write less data then expected

Mylene Josserand mylene.josserand at collabora.com
Tue Jul 7 10:25:42 CEST 2020


Hi,

On 6/9/20 8:49 PM, Walter Lozano wrote:
> Hi Mylene,
> 
> Thanks for you patch.
> 
> On 5/6/20 05:01, Mylène Josserand wrote:
>> Add a new error message in case the size of data written
>> are shorter than the one expected.
>>
>> Currently, it will lead to the following error message:
>>     "mkimage: Write error on uImage: Success"
>>
>> This is not explicit when the error is because the device
>> doesn't have enough space. Let's use a "No space left on
>> the device" error message in that case.
>>
>> Signed-off-by: Mylène Josserand <mylene.josserand at collabora.com>
>> ---
>>   tools/mkimage.c | 14 ++++++++++----
>>   1 file changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/tools/mkimage.c b/tools/mkimage.c
>> index d2cd1917874..ef0cc889a92 100644
>> --- a/tools/mkimage.c
>> +++ b/tools/mkimage.c
>> @@ -674,7 +674,7 @@ copy_file (int ifd, const char *datafile, int pad)
>>       int zero = 0;
>>       uint8_t zeros[4096];
>>       int offset = 0;
>> -    int size;
>> +    int size, ret;
>>       struct image_type_params *tparams = 
>> imagetool_get_type(params.type);
>>       memset(zeros, 0, sizeof(zeros));
>> @@ -730,9 +730,15 @@ copy_file (int ifd, const char *datafile, int pad)
>>       }
>>       size = sbuf.st_size - offset;
>> -    if (write(ifd, ptr + offset, size) != size) {
>> -        fprintf (stderr, "%s: Write error on %s: %s\n",
>> -            params.cmdname, params.imagefile, strerror(errno));
>> +
>> +    ret = write(ifd, ptr + offset, size);
>> +    if (ret != size) {
>> +        if (ret < 0)
>> +            fprintf (stderr, "%s: Write error on %s: %s\n",
>> +                 params.cmdname, params.imagefile, strerror(errno));
>> +        else if (ret < size)
>> +            fprintf (stderr, "%s: No space left on the device\n",
>> +                 params.cmdname);
> 
> 
> Thanks for improving the error message, it is much more clear now. The 
> only question I have is if "no space left on the device" is the only 
> possible cause for this situation, for sure it is the most probable.

Thanks for your review. Indeed, it is the most probable I guess.

> 
>>           exit (EXIT_FAILURE);
>>       }
> 
> 
> Regards,
> 
> Walter
> 

Best regards,
Mylène


More information about the U-Boot mailing list