Skip to content

Commit

Permalink
bootstd: cros: store partition type in an efi_guid_t
Browse files Browse the repository at this point in the history
The scan_part() function uses a struct uuid to store the little-endian
partition type GUID, but this structure should be used only to contain a
big-endian UUID. Use an efi_guid_t instead and use guidcmp() for the
comparison.

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
  • Loading branch information
vstehle authored and trini committed Jul 16, 2024
1 parent 0a1bf35 commit 1b1b1e7
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions boot/bootmeth_cros.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ static int scan_part(struct udevice *blk, int partnum,
{
struct blk_desc *desc = dev_get_uclass_plat(blk);
struct vb2_keyblock *hdr;
struct uuid type;
efi_guid_t type;
ulong num_blks;
int ret;

Expand All @@ -160,10 +160,10 @@ static int scan_part(struct udevice *blk, int partnum,

/* Check for kernel partition type */
log_debug("part %x: type=%s\n", partnum, info->type_guid);
if (uuid_str_to_bin(info->type_guid, (u8 *)&type, UUID_STR_FORMAT_GUID))
if (uuid_str_to_bin(info->type_guid, type.b, UUID_STR_FORMAT_GUID))
return log_msg_ret("typ", -EINVAL);

if (memcmp(&cros_kern_type, &type, sizeof(type)))
if (guidcmp(&cros_kern_type, &type))
return log_msg_ret("typ", -ENOEXEC);

/* Make a buffer for the header information */
Expand Down

0 comments on commit 1b1b1e7

Please sign in to comment.