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

From: Jason Gunthorpe
Date: Tue Aug 30 2016 - 14:07:15 EST


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

Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>

Jason