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]>
---
 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

Reply via email to