On Thu, 11 Jun 2026 at 12:29, Vincent Stehlé <[email protected]> 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é <[email protected]> > Cc: Heinrich Schuchardt <[email protected]> > Cc: Ilias Apalodimas <[email protected]> > Cc: Tom Rini <[email protected]> > Cc: Alexander Graf <[email protected]> > ---
Reviewed-by: Ilias Apalodimas <[email protected]> > 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 >

