[U-Boot] [PATCH] tools/mkimage: use lseek rather than fstat for	file size for -l option
    Peter Korsgaard 
    jacmet at sunsite.dk
       
    Wed Dec  3 08:43:52 CET 2008
    
    
  
>>>>> "Wolfgang" == Wolfgang Denk <wd at denx.de> writes:
Hi,
 Wolfgang> Hm... but lseek() on /dev/mtdblockN will return the size of
 Wolfgang> the MTD device, not of the image that may be stored in it,
 Wolfgang> right?
Yes.
 Wolfgang> Later, you should get data checksum errors because of the
 Wolfgang> incorrect lenght, i.  e.  a ``ERROR: "<image>" has
 Wolfgang> corrupted data!'' error message.
Exactly, hence my other patch (tools/mkimage: ignore trailing garbage)
to only error out if the size is smaller than the size defined in the
header.
 Wolfgang> I don't think this works.
 >> -		if (fstat(ifd, &sbuf) < 0) {
 >> -			fprintf (stderr, "%s: Can't stat %s: %s\n",
 >> +		sbuf.st_size = lseek(ifd, 0, SEEK_END);
 >> +		if (sbuf.st_size == (off_t)-1) {
 >> +			fprintf (stderr, "%s: Can't get size of %s: %s\n",
 Wolfgang> If you don't use *stat(), you should not use any struct
 Wolfgang> stat type either.
Ok, I kept it like that to keep the patch as minimal as possible -
I'll change it and resend.
-- 
Bye, Peter Korsgaard
    
    
More information about the U-Boot
mailing list