[PATCH] efi_loader: fix FinalEvent table initial position

Ilias Apalodimas ilias.apalodimas at linaro.org
Wed Nov 17 00:34:27 CET 2021


Hi Heinrich,


On Wed, 17 Nov 2021 at 01:24, Ilias Apalodimas
<ilias.apalodimas at linaro.org> wrote:
>
> When initializing the final event table in create_final_event() we are
> setting the initial buffer position to sizeof(*final_event).  Although
> we clear the buffer correctly and won't cause any problems,  we should
> start logging events starting from zero.
> While at it add a cast when defining the final_event.
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> ---
>  lib/efi_loader/efi_tcg2.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/lib/efi_loader/efi_tcg2.c b/lib/efi_loader/efi_tcg2.c
> index 189e4a5ba59c..634556342a7c 100644
> --- a/lib/efi_loader/efi_tcg2.c
> +++ b/lib/efi_loader/efi_tcg2.c
> @@ -1257,10 +1257,11 @@ static efi_status_t create_final_event(void)
>                 goto out;
>
>         memset(event_log.final_buffer, 0xff, TPM2_EVENT_LOG_SIZE);
> -       final_event = event_log.final_buffer;
> +       final_event =
> +               (struct efi_tcg2_final_events_table *)event_log.final_buffer;
>         final_event->number_of_events = 0;
>         final_event->version = EFI_TCG2_FINAL_EVENTS_TABLE_VERSION;
> -       event_log.final_pos = sizeof(*final_event);
> +       event_log.final_pos = 0;
>         ret = efi_install_configuration_table(&efi_guid_final_events,
>                                               final_event);
>         if (ret != EFI_SUCCESS) {
> --
> 2.33.1
>

After sending this I just realized it's wrong.  The current code is
correct, since we have to account for the number of events and version

Sorry for the noise

Cheers
/Ilias


More information about the U-Boot mailing list