[U-Boot] [PATCH] part_efi: fix protective_mbr struct allocation
Albert ARIBAUD
albert.u.boot at aribaud.net
Wed Feb 12 17:33:29 CET 2014
Hi Fabio,
On Wed, 12 Feb 2014 12:43:02 -0200, Fabio Estevam <festevam at gmail.com>
wrote:
> On Wed, Feb 12, 2014 at 12:40 PM, Hector Palacios
> <hector.palacios at digi.com> wrote:
> > The calloc() call was allocating space for the sizeof the struct
> > pointer rather than for the struct contents.
> >
> > Signed-off-by: Hector Palacios <hector.palacios at digi.com>
> > ---
> > disk/part_efi.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/disk/part_efi.c b/disk/part_efi.c
> > index 5dfaf490c89a..7fabec059d7a 100644
> > --- a/disk/part_efi.c
> > +++ b/disk/part_efi.c
> > @@ -232,7 +232,7 @@ static int set_protective_mbr(block_dev_desc_t *dev_desc)
> > legacy_mbr *p_mbr;
> >
> > /* Setup the Protective MBR */
> > - p_mbr = calloc(1, sizeof(p_mbr));
> > + p_mbr = calloc(1, sizeof(legacy_mbr));
>
> What about:
>
> p_mbr = calloc(1, sizeof(*p_mbr)) ?
I don't like the idea of setting p_mbr based on *p_mbr at a time where
p_mbr is still undefined. I know that from a C standard perspective
this is ok, but I'd rather simply not run any risk and pass sizeof
the struct type, not a (non-existent) dereferenced 'value'.
> Regards,
>
> Fabio Estevam
Amicalement,
--
Albert.
More information about the U-Boot
mailing list