[U-Boot] [PATCH] efi_loader: initialise partition_signature memory

Jonathan Gray jsg at jsg.id.au
Tue Nov 21 12:24:32 UTC 2017


Zero partition_signature in the efi_device_path_hard_drive_path
structure when signature_type is zero.

This is required so that efi_dp_match() will work as expected
when doing memcmp() comparisons.

Corrects a problem where the loaded image protocol would not return a
device path with MEDIA_DEVICE causing the OpenBSD bootloader to fail
on rpi_3 and other targets.

Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
---
 lib/efi_loader/efi_device_path.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
index f6e368e029..8045532a29 100644
--- a/lib/efi_loader/efi_device_path.c
+++ b/lib/efi_loader/efi_device_path.c
@@ -431,6 +431,9 @@ static void *dp_part_fill(void *buf, struct blk_desc *desc, int part)
 		if (hddp->signature_type != 0)
 			memcpy(hddp->partition_signature, &desc->guid_sig,
 			       sizeof(hddp->partition_signature));
+		else
+			memset(hddp->partition_signature, 0,
+			       sizeof(hddp->partition_signature));
 
 		buf = &hddp[1];
 	}
-- 
2.15.0



More information about the U-Boot mailing list