[PATCH] efi_selftest: fix guid comparison
Ilias Apalodimas
ilias.apalodimas at linaro.org
Thu Jun 11 14:27:10 CEST 2026
On Thu, 11 Jun 2026 at 12:29, Vincent Stehlé <vincent.stehle at arm.com> wrote:
>
> The `loaded image' efi selftest is comparing protocol GUIDs with the wrong
> polarity.
> This can be verified on the sandbox, where two protocols GUIDs are
> retrieved by the test from the image handle in the following order:
>
> 1. Loaded Image Device Path Protocol GUID
> 2. Loaded Image Protocol GUID
>
> The test matches on the first GUID, while it is in fact looking for the
> second one; fix the comparison polarity.
>
> While at it, use guidcmp() instead of memcmp() to spare the size parameter,
> and use the Loaded Image Protocol GUID definition from efi_api.h instead or
> redefining it locally.
>
> Fixes: efe79a7c0de0 ("efi_selftest: test for loaded image protocol")
> Signed-off-by: Vincent Stehlé <vincent.stehle at arm.com>
> Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: Alexander Graf <agraf at suse.de>
> ---
Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> lib/efi_selftest/efi_selftest_loaded_image.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/lib/efi_selftest/efi_selftest_loaded_image.c b/lib/efi_selftest/efi_selftest_loaded_image.c
> index 5889ab12617..48890a66db7 100644
> --- a/lib/efi_selftest/efi_selftest_loaded_image.c
> +++ b/lib/efi_selftest/efi_selftest_loaded_image.c
> @@ -9,9 +9,7 @@
>
> #include <efi_selftest.h>
>
> -static efi_guid_t loaded_image_protocol_guid =
> - EFI_GUID(0x5b1b31a1, 0x9562, 0x11d2,
> - 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b);
> +static efi_guid_t loaded_image_protocol_guid = EFI_LOADED_IMAGE_PROTOCOL_GUID;
> static struct efi_boot_services *boottime;
> efi_handle_t image_handle;
>
> @@ -60,8 +58,7 @@ static int execute(void)
> efi_st_printf("%u protocols installed on image handle\n",
> (unsigned int)protocol_buffer_count);
> for (i = 0; i < protocol_buffer_count; ++i) {
> - if (memcmp(protocol_buffer[i], &loaded_image_protocol_guid,
> - sizeof(efi_guid_t)))
> + if (!guidcmp(protocol_buffer[i], &loaded_image_protocol_guid))
> found = true;
> }
> if (!found) {
> --
> 2.53.0
>
More information about the U-Boot
mailing list