Re: [PATCH v6] tpm: fix a race condition in tpm2_unseal_trusted()

From: Jarkko Sakkinen
Date: Tue Aug 30 2016 - 14:41:52 EST


On Tue, Aug 30, 2016 at 12:07:01PM -0600, Jason Gunthorpe wrote:
> On Tue, Aug 30, 2016 at 01:51:06AM +0300, Jarkko Sakkinen wrote:
> > Unseal and load operations should be done as an atomic operation. This
> > commit introduces unlocked tpm_transmit() so that tpm2_unseal_trusted()
> > can do the locking by itself.
> >
> > v2: Introduced an unlocked unseal operation instead of changing locking
> > strategy in order to make less intrusive bug fix and thus more
> > backportable.
> >
> > v3: Have also separate __tpm_transmit() that takes 'flags' in order to
> > better localize the bug fix and make it easier to backport.
> >
> > v4: Cleaned up the control flow in tpm2_unseal_trusted. Added the
> > missing 'Fixes' line.
> >
> > v5: Previous versions did not set the enum to any value, so it was set
> > to zero. Changed enum to TPM_TRANSMIT_UNLOCKED because it is
> > guaranteed to catch such situation. With change the common case
> > adds so little clutter that the wrappers do not make sense anymore.
> >
> > v6: Added flags parameter to internal TPM command wrappers to have
> > an expected default behavior and documented them.
>
> Yeah, this is nice.
>
> BTW, do not put the vX: stuff into the commit message, and it would be
> best to include it after the diffstat the patch email

I was going to strip it but including it after the diffstat sounds like
a great idea.

> Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
>
> Jason

/Jarkko