On Fri, Jul 11, 2025 at 08:59:50AM +0100, Frediano Ziglio via Grub-devel wrote:
> From UEFI specifications 2.10, section 13.2.2,
> "EFI_LOAD_FILE2_PROTOCOL.LoadFile" (see
> https://uefi.org/specs/UEFI/2.10/13_Protocols_Media_Access.html),
> for BufferSize:
>
>     On input the size of Buffer in bytes. On output with a return code
>     of EFI_SUCCESS, the amount of data transferred to Buffer. On output
>     with a return code of EFI_BUFFER_TOO_SMALL, the size of Buffer
>     required to retrieve the requested file.
>
> so set *buffer_size correctly.
>
> Signed-off-by: Frediano Ziglio <frediano.zig...@cloud.com>
> ---
> Changes since v1:
> - improved commit message

Thank you!

> ---
>  grub-core/loader/efi/linux.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c
> index 36dea2931..caeebe1ec 100644
> --- a/grub-core/loader/efi/linux.c
> +++ b/grub-core/loader/efi/linux.c
> @@ -363,6 +363,7 @@ grub_efi_initrd_load_file2 (grub_efi_load_file2_t *this,
>
>    grub_dprintf ("linux", "Providing initrd via EFI_LOAD_FILE2_PROTOCOL\n");
>
> +  *buffer_size = initrd_size;
>    if (grub_initrd_load (&initrd_ctx, buffer))
>      status = GRUB_EFI_DEVICE_ERROR;

IMO code is still not in line with the spec. If you think it is correct
it begs for a comment in the code and a blurb in a commit message.

Daniel

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to