[U-Boot] [PATCH] efi_loader: LocateHandle should return EFI_NOT_FOUND if none found
Heinrich Schuchardt
xypron.debian at gmx.de
Sun Aug 6 17:27:27 UTC 2017
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 at 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
More information about the U-Boot
mailing list