On Sat, May 20, 2017 at 07:27:54PM -0700, ali...@peloton-tech.com wrote:

> From: Alison Chaiken <ali...@she-devel.com>
> 
> Make the partition table available for modification by reading it from
> the user-specified device into a linked list.   Provide an accessor
> function for command-line testing.
> 
> Signed-off-by: Alison Chaiken <ali...@peloton-tech.com>
[snip]
> +     /*
> +      * 33 rather than 32, as each string must be null-terminated;
> +      * other extract_val() above will fail.
> +      */
> +     strncpy((char *)newpart->gpt_part_info.name, (const char *)info->name, 
> 33);
> +     strncpy((char *)newpart->gpt_part_info.type, (const char *)info->type, 
> 33);

This isn't right.  We have name[32]/type[32] so we're overflowing.  I'm
not quite sure where 32 came from and if we should be defining a name
for it as well.  But to make sure it is null-terminated we should be
here memset'ing after malloc.

> +     newpart->gpt_part_info.bootable = info->bootable;
> +#ifdef CONFIG_PARTITION_UUIDS
> +     strncpy(newpart->gpt_part_info.uuid, (const char *)info->uuid,
> +             UUID_STR_LEN + 1);
> +#endif

Then this should just be copying UUID_STR_LEN over.

> +     if (!valid_parts) {
> +             printf("** No valid partitions found **\n");
> +             del_gpt_info();
> +             return -1;

We should return something from errno here rather than -1.  Thanks!

-- 
Tom

Attachment: signature.asc
Description: Digital signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to