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.

Signed-off-by: Vincent Stehlé <vincent.ste...@arm.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Tom Rini <tr...@konsulko.com>
---
 boot/bootmeth_cros.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/boot/bootmeth_cros.c b/boot/bootmeth_cros.c
index f015f2e1c75..1f83c14aeab 100644
--- a/boot/bootmeth_cros.c
+++ b/boot/bootmeth_cros.c
@@ -148,7 +148,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;
 
@@ -161,7 +161,7 @@ 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)))
-- 
2.43.0

Reply via email to