[U-Boot] [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 robdclark@gmail.com --- lib/efi_loader/efi_boottime.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 5ff2d2d4b0..ada119325c 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -643,6 +643,9 @@ static efi_status_t EFIAPI efi_locate_handle( }
*buffer_size = size; + if (size == 0) + return EFI_NOT_FOUND; + return EFI_SUCCESS; }

On 08/06/2017 06:23 PM, Rob Clark wrote:
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 robdclark@gmail.com
lib/efi_loader/efi_boottime.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 5ff2d2d4b0..ada119325c 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -643,6 +643,9 @@ static efi_status_t EFIAPI efi_locate_handle( }
*buffer_size = size;
- if (size == 0)
return EFI_NOT_FOUND;
- return EFI_SUCCESS;
}
Thanks for spotting this.
We can do the test earlier, if we move *buffer_size = size; to another line.
test:
... size += sizeof(void*); } }
if (*buffer_size < size) { *buffer_size = size; return EFI_BUFFER_TOO_SMALL; } *buffer_size = size; if (size == 0) return EFI_NOT_FOUND;
/* Then fill the array */ ...
Best regards
Heinrich

From: Rob Clark robdclark@gmail.com Date: Sun, 6 Aug 2017 12:23:50 -0400
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 robdclark@gmail.com
Reviewed-by: Mark Kettenis kettenis@openbsd.org
lib/efi_loader/efi_boottime.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 5ff2d2d4b0..ada119325c 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -643,6 +643,9 @@ static efi_status_t EFIAPI efi_locate_handle( }
*buffer_size = size;
- if (size == 0)
return EFI_NOT_FOUND;
- return EFI_SUCCESS;
}
-- 2.13.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
participants (3)
-
Heinrich Schuchardt
-
Mark Kettenis
-
Rob Clark