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 <robdcl...@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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to