[PATCH 2/5] filetype: add GPT support

Johannes Stezenbach js at sig21.net
Thu Feb 14 12:05:07 EST 2013


On Thu, Feb 14, 2013 at 05:53:23PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 17:36 Thu 14 Feb     , Sascha Hauer wrote:
> > On Thu, Feb 14, 2013 at 04:52:24PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > GPT need to be check before MBR
> > > 
> > > Cc: Rob Herring <rob.herring at calxeda.com>
> > > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> > > ---
> > >  common/filetype.c  |    4 ++++
> > >  include/filetype.h |    1 +
> > >  2 files changed, 5 insertions(+)
> > > 
> > > diff --git a/common/filetype.c b/common/filetype.c
> > > index 22fc621..6563ecc 100644
> > > --- a/common/filetype.c
> > > +++ b/common/filetype.c
> > > @@ -48,6 +48,7 @@ static const struct filetype_str filetype_str[] = {
> > >  	[filetype_bmp] = { "BMP image", "bmp" },
> > >  	[filetype_png] = { "PNG image", "png" },
> > >  	[filetype_ext] = { "ext filesystem", "ext" },
> > > +	[filetype_gpt] = { "GUID Partition Table", "gpt" },
> > >  };
> > >  
> > >  const char *file_type_to_string(enum filetype f)
> > > @@ -159,6 +160,9 @@ enum filetype file_detect_type(const void *_buf, size_t bufsize)
> > >  	if (bufsize < 512)
> > >  		return filetype_unknown;
> > >  
> > > +	if (bufsize >= 520 && strncmp(&buf8[512], "EFI PART", 8) == 0)
> > > +		return filetype_gpt;
> > > +
> > 
> > The list is sorted by size, so please move this below:
> on purpose
> 
> EFI need to be detect before mbr

IMHO the check is too simple, it will give false positive if
GPT is replaced by DOS MBR and not zeroed out.  Need to check
for protective MBR.

Johannes



More information about the barebox mailing list