The test of the UEFI LocateHandleBuffer() function clears a returned buffer
at some point to reuse it, but there is an error in the size computation,
which leads to a buffer overflow; fix it.

Fixes: 927ca890b09f ("efi_selftest: test protocol management")
Signed-off-by: Vincent Stehlé <[email protected]>
Cc: Heinrich Schuchardt <[email protected]>
Cc: Ilias Apalodimas <[email protected]>
Cc: Tom Rini <[email protected]>
---
 lib/efi_selftest/efi_selftest_manageprotocols.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/efi_selftest/efi_selftest_manageprotocols.c 
b/lib/efi_selftest/efi_selftest_manageprotocols.c
index 097b2ae3545..ccffa59095d 100644
--- a/lib/efi_selftest/efi_selftest_manageprotocols.c
+++ b/lib/efi_selftest/efi_selftest_manageprotocols.c
@@ -241,7 +241,7 @@ static int execute(void)
                return EFI_ST_FAILURE;
        }
        /* Clear the buffer, we are reusing it it the next step. */
-       boottime->set_mem(buffer, sizeof(efi_handle_t) * buffer_size, 0);
+       boottime->set_mem(buffer, sizeof(efi_handle_t) * count, 0);
 
        /*
         * Test LocateHandle with ByProtocol
-- 
2.51.0

Reply via email to