public inbox for linux-efi@vger.kernel.org
 help / color / mirror / Atom feed
From: Gregory Price <gourry@gourry.net>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org,
	leitao@debian.org, usamaarif642@gmail.com,
	sathyanarayanan.kuppuswamy@linux.intel.com,
	ilias.apalodimas@linaro.org
Subject: Re: [PATCH 6/6] libstub,tpm: do not ignore failure case when reading final event log
Date: Fri, 13 Sep 2024 13:36:26 -0400	[thread overview]
Message-ID: <ZuR4GsERfsyJnG06@PC2K9PVX.TheFacebook.com> (raw)
In-Reply-To: <CAMj1kXHEH5PE=7swKMJUP-gTAuyoJH5E8NL+RuFnMceF=MpoWQ@mail.gmail.com>

On Fri, Sep 13, 2024 at 05:59:17PM +0200, Ard Biesheuvel wrote:
> On Fri, 13 Sept 2024 at 17:30, Gregory Price <gourry@gourry.net> wrote:
> >
> > On Fri, Sep 13, 2024 at 05:25:27PM +0200, Ard Biesheuvel wrote:
> > > On Fri, 6 Sept 2024 at 22:28, Gregory Price <gourry@gourry.net> wrote:
> > > >
> > > > Current code fails to check for an error case when reading events from
> > > > final event log to calculate offsets.  Check the error case, report the
> > > > error, and break early because all subsequent calls will also fail.
> > > >
> > > > Signed-off-by: Gregory Price <gourry@gourry.net>
> > > > ---
> > > >  drivers/firmware/efi/libstub/tpm.c | 4 ++++
> > > >  1 file changed, 4 insertions(+)
> > > >
> > > > diff --git a/drivers/firmware/efi/libstub/tpm.c b/drivers/firmware/efi/libstub/tpm.c
> > > > index 4f9f0e049a7a..c71b0d3e66d2 100644
> > > > --- a/drivers/firmware/efi/libstub/tpm.c
> > > > +++ b/drivers/firmware/efi/libstub/tpm.c
> > > > @@ -124,6 +124,10 @@ static void efi_retrieve_tcg2_eventlog(int version, efi_physical_addr_t log_loca
> > > >                         event_size = __calc_tpm2_event_size(header,
> > > >                                                    (void *)(long)log_location,
> > > >                                                    false);
> > > > +                       if (!event_size) {
> > > > +                               efi_err("Invalid TPM Final Event Log Entry\n");
> > > > +                               break;
> > > > +                       }
> > >
> > > I don't object to this in principle, the only problem is that these
> > > log prints are not recorded anywhere: they are printed to the EFI boot
> > > console by the EFI stub, which may not even be visible, and is
> > > definitely not captured by the kernel logging routines.
> >
> > Could simply drop the err and break if you think it's just going to get
> > lost anyway.  Not sure there's a good way to generate a signal at this point.
> >
> 
> Yeah. For the record, I absolutely detest the kludgy code there, how
> we parse the map, parse and unmap the event header for every entry in
> the log.
> 
> So while I highly appreciate the effort you are putting in to polish
> this code, I wonder if it wouldn't be better to code this up properly
> instead.

Mostly I was both amused and triggered by a patch trying to fix a
signed/unsigned bug introducing another signed/unsigned bug lol.

Then I found more and felt this injustice cannot stand x_x

I'll at least push another version of these fixed up and i'll just
drop this print. Probably improving this code isn't worth it unless
it's fundamentally broken (which it does not *appear* to be, i spent
a day auditing it against the spec, and to my eye it looks largely ok).

~Gregory

      reply	other threads:[~2024-09-13 17:37 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-06 20:27 [PATCH 0/6] libstub,tpm: fix small bugs and improve error reporting Gregory Price
2024-09-06 20:27 ` [PATCH 1/6] tpm: fix signed/unsigned bug when checking event logs Gregory Price
2024-09-06 20:27 ` [PATCH 2/6] tpm: do not ignore memblock_reserve return value Gregory Price
2024-09-13  7:02   ` Ilias Apalodimas
2024-09-13 12:58     ` Gregory Price
2024-09-06 20:27 ` [PATCH 3/6] libstub,tpm: provide indication of failure when getting event log Gregory Price
2024-09-13  6:59   ` Ilias Apalodimas
2024-09-13 12:57     ` Gregory Price
2024-09-13 13:10       ` Ilias Apalodimas
2024-09-13 23:06         ` Gregory Price
2024-09-06 20:27 ` [PATCH 4/6] tpm: sanity check the log version before using it Gregory Price
2024-09-13  6:40   ` Ilias Apalodimas
2024-09-13 12:56     ` Gregory Price
2024-09-13 13:39       ` Ilias Apalodimas
2024-09-13 13:44         ` Ard Biesheuvel
2024-09-13 13:47           ` Ard Biesheuvel
2024-09-13 14:03             ` Gregory Price
2024-09-06 20:27 ` [PATCH 5/6] tpm: fix unsigned/signed mismatch errors related to __calc_tpm2_event_size Gregory Price
2024-09-06 20:27 ` [PATCH 6/6] libstub,tpm: do not ignore failure case when reading final event log Gregory Price
2024-09-13 15:25   ` Ard Biesheuvel
2024-09-13 15:29     ` Gregory Price
2024-09-13 15:59       ` Ard Biesheuvel
2024-09-13 17:36         ` Gregory Price [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZuR4GsERfsyJnG06@PC2K9PVX.TheFacebook.com \
    --to=gourry@gourry.net \
    --cc=ardb@kernel.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=leitao@debian.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=usamaarif642@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox