From 796a78cbe5676fc7562b50c7a0191fa56c8c4772 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 6 Aug 2017 14:10:07 -0400 Subject: [PATCH] efi_loader: LocateHandle should return EFI_NOT_FOUND if none found Spotted this debugging OpenBSD's bootloader in qemu. (Wouldn't really fix anything, the problem was not having any disks, but we should probably return the correct error code.) Signed-off-by: Rob Clark Reviewed-by: Heinrich Schuchardt Signed-off-by: Alexander Graf --- lib/efi_loader/efi_boottime.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 58cd6d0e89..43f32385fa 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -633,6 +633,10 @@ static efi_status_t efi_locate_handle( return EFI_BUFFER_TOO_SMALL; } + *buffer_size = size; + if (size == 0) + return EFI_NOT_FOUND; + /* Then fill the array */ list_for_each(lhandle, &efi_obj_list) { struct efi_object *efiobj; @@ -642,7 +646,6 @@ static efi_status_t efi_locate_handle( } } - *buffer_size = size; return EFI_SUCCESS; } -- 2.39.5