[DNX#2006040142000964] [U-Boot-Users] WARNING: in ext2fs.c (fwd)

DENX Support System support at denx.de
Wed Apr 5 13:40:05 CEST 2006


Hello list,

inside the automatic U-Boot patch tracking system a follow up
to [DNX#2006040142000964] was entered through the web interface:

<snip>
> Hello,
> 
> the fix for this bug should be in GIT tree...
> 
> Reinhard
> 
> DENX Support System wrote:
> > Hello list,
> > 
> > inside the automatic U-Boot patch tracking system a follow up
> > to [DNX#2006040142000964] was entered through the web interface:
> > 
> > <snip>
> > 
> >>------- Forwarded Message
> >>
> >>Date:    Fri, 30 Sep 2005 00:22:57 +0200
> >>From:    Reinhard Arlt <reinhard.arlt at t-online.de>
> >>cc:      "'u-boot-users at lists.sourceforge.net'"
> >><u-boot-users at lists.sourceforge
> >>	  .net>
> >>Subject: Re: [U-Boot-Users] WARNING: in ext2fs.c
> >>
> >>Hello,
> >>
> >>this is a bug on bigendian machines, Who prepares a patch?
> >>
> >>Best regards
> >>
> >>Reinhard
> >>
> >>Roberts, John wrote:
> >>
> >>>	In function: ext2fs_read_file(ext2fs_node_t node, int pos, unsigned
> >>>int len, char *buf)
> >>>
> >>>	You may not be getting all the bytes you requested in the 'len'
> >>>parameter. Your requested length might be improperly adjusted.
> >>>	----------------------- Code snippet -------------
> >>>	unsigned int filesize = node->inode.size;
> >>>
> >>>	/* Adjust len so it we can't read past the end of the file.  */
> >>>	if (len > filesize) {
> >>>	len = filesize;
> >>>	}
> >>>-----------------------------------------------------------
> >>>
> >>>"len" is the native requested size, while "filesize" is the files real size,
> >>>but byte-swapped and the two are being compared. As long as the byte-swapped
> >>>length value is larger than the requested size value, then you'll never have
> >>>a problem.
> >>>
> >>>Now assume the file is 2meg and you requested 2meg.
> >>>
> >>>IF(  len=200000 (2meg)    >  filesize=2000(2meg byte-swapped) )
> >>>THEN	len = filesize
> >>>
> >>>You end up getting only 2000 bytes.
> >>>
> >>>	The initialization of filesize should be:
> >>>	 unsigned int filesize = __le32_to_cpu (node->inode.size);
> >>>	Not:
> >>>	unsigned int filesize = node->inode.size;
> >>>
> >>>	(440gx)
> >>>	-John Roberts
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>-------------------------------------------------------
> >>>This SF.Net email is sponsored by:
> >>>Power Architecture Resource Center: Free content, downloads, discussions,
> >>>and more. http://solutions.newsforge.com/ibmarch.tmpl
> >>>_______________________________________________
> >>>U-Boot-Users mailing list
> >>>U-Boot-Users at lists.sourceforge.net
> >>>https://lists.sourceforge.net/lists/listinfo/u-boot-users
> >>>
> >>
> >>
> >>
> >>-------------------------------------------------------
> >>This SF.Net email is sponsored by:
> >>Power Architecture Resource Center: Free content, downloads,
> >>discussions,
> >>and more. http://solutions.newsforge.com/ibmarch.tmpl
> >>_______________________________________________
> >>U-Boot-Users mailing list
> >>U-Boot-Users at lists.sourceforge.net
> >>https://lists.sourceforge.net/lists/listinfo/u-boot-users
> >>
> >>
> >>------- End of Forwarded Message
> > 
> > </snip>
> > 
> > Your U-Boot support team
> > 
</snip>

Your U-Boot support team




More information about the U-Boot mailing list