Add a couple of tests for the cases when the HII database protocol
get_package_list_handle() function is called with invalid parameters.

Signed-off-by: Vincent Stehlé <vincent.ste...@arm.com>
Cc: Heinrich Schuchardt <xypron.g...@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org>
---


Hi,

Thanks Heinrich for your review and feedbacks; here is v2 of this patch.

Best regards,
Vincent.

Changes in v2:
- Change initialization of driver_handle to a non-NULL value, which will
  never get allocated.
- Add a second test for the case when driver handle is invalid.

v1 reference(s):
- https://lists.denx.de/pipermail/u-boot/2022-December/502213.html
- https://lists.denx.de/pipermail/u-boot/2023-January/503718.html


 lib/efi_selftest/efi_selftest_hii.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/lib/efi_selftest/efi_selftest_hii.c 
b/lib/efi_selftest/efi_selftest_hii.c
index eaf3b0995d4..608e3982399 100644
--- a/lib/efi_selftest/efi_selftest_hii.c
+++ b/lib/efi_selftest/efi_selftest_hii.c
@@ -605,6 +605,25 @@ static int test_hii_database_get_package_list_handle(void)
                goto out;
        }
 
+       /* Invalid package list handle. */
+       driver_handle = (efi_handle_t)~1UL;
+       ret = hii_database_protocol->get_package_list_handle(
+                       hii_database_protocol, NULL, &driver_handle);
+       if (ret != EFI_INVALID_PARAMETER) {
+               efi_st_error("get_package_list_handle returned %u not 
invalid\n",
+                            (unsigned int)ret);
+               goto out;
+       }
+
+       /* Invalid driver handle. */
+       ret = hii_database_protocol->get_package_list_handle(
+                       hii_database_protocol, handle, NULL);
+       if (ret != EFI_INVALID_PARAMETER) {
+               efi_st_error("get_package_list_handle returned %u not 
invalid\n",
+                            (unsigned int)ret);
+               goto out;
+       }
+
        result = EFI_ST_SUCCESS;
 
 out:
-- 
2.39.0

Reply via email to