[U-Boot] [PATCH] fat: handle paths that include ../

Tom Rini trini at konsulko.com
Fri Sep 11 00:26:01 CEST 2015


On Thu, Sep 10, 2015 at 10:22:35AM -0700, Stephen Warren wrote:
> On 07/28/2015 08:55 PM, Stephen Warren wrote:
> > The FAT code contains a special case to parse the root directory. This
> > is needed since the root directory location/layout on disk is special
> > cased for FAT12/16. In particular, the location and size of the FAT12/16
> > root directory is hard-coded and contiguous, whereas all FAT12/16 non-root
> > directories, and all FAT32 directories, are stored in a non-contiguous
> > fashion, with the layout represented by a linked-list of clusters in the
> > FAT.
> > 
> > If a file path contains ../ (for example /extlinux/../bcm2835-rpi-cm.dtb),
> > it is possible to need to parse the root directory for the first element
> > in the path (requiring application of the special case), then a sub-
> > directory (in the general way), then re-parse the root directory (again
> > requiring the special case). However, the current code in U-Boot only
> > applies the special case for the very first path element, and never for
> > any later path element. When reparsing the root directory without
> > applying the special case, any file in a sector (or cluster?) other than
> > the first sector/cluster of the root directory will not be found.
> > 
> > This change modifies the non-root-dir-parsing loop of do_fat_read_at()
> > to detect if it's walked back to the root directory, and if so, jumps
> > back to the special case code that handles parsing of the root directory.
> 
> Is this change slated for v2015.10, or is the plan to leave this issue
> in place until the FAT implementation replacement is accepted for the
> release after that?

I believe I shall grab this.  Did you see the email from Lukasz saying
the new FAT didn't pass the DFU test suite?

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150910/6e2f7cc6/attachment.sig>


More information about the U-Boot mailing list