On Mon, Aug 26, 2019 at 9:30 AM Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote: > > On Mon, Aug 26, 2019 at 11:30:28AM -0400, Peter Jones wrote: > > When there are no entries to put into the final event log, some machines > > will return the template they would have populated anyway. In this case > > the nr_events field is 0, but the rest of the log is just garbage. > > > > This patch stops us from trying to iterate the table with > > __calc_tpm2_event_size() when the number of events in the table is 0. > > > > Signed-off-by: Peter Jones <pjones@xxxxxxxxxx> > > Tested-by: Lyude Paul <lyude@xxxxxxxxxx> > > --- > > drivers/firmware/efi/tpm.c | 14 +++++++++----- > > 1 file changed, 9 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/firmware/efi/tpm.c b/drivers/firmware/efi/tpm.c > > index 1d3f5ca3eaa..be51ed17c6e 100644 > > --- a/drivers/firmware/efi/tpm.c > > +++ b/drivers/firmware/efi/tpm.c > > @@ -75,11 +75,15 @@ int __init efi_tpm_eventlog_init(void) > > goto out; > > } > > > > - tbl_size = tpm2_calc_event_log_size((void *)efi.tpm_final_log > > - + sizeof(final_tbl->version) > > - + sizeof(final_tbl->nr_events), > > - final_tbl->nr_events, > > - log_tbl->log); > > + tbl_size = 0; > > + if (final_tbl->nr_events != 0) { > > + void *events = (void *)efi.tpm_final_log > > + + sizeof(final_tbl->version) > > + + sizeof(final_tbl->nr_events); > > + tbl_size = tpm2_calc_event_log_size(events, > > + final_tbl->nr_events, > > + log_tbl->log); > > + } > > Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx> Acked-by: Matthew Garrett <mjg59@xxxxxxxxxx>