Patch "KEYS: trusted: Fix TPM reservation for seal/unseal" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    KEYS: trusted: Fix TPM reservation for seal/unseal

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     keys-trusted-fix-tpm-reservation-for-seal-unseal.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3873a782c70f48f88c846c74bb987c9c7abbe28f
Author: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
Date:   Wed Apr 21 15:42:47 2021 -0700

    KEYS: trusted: Fix TPM reservation for seal/unseal
    
    [ Upstream commit 9d5171eab462a63e2fbebfccf6026e92be018f20 ]
    
    The original patch 8c657a0590de ("KEYS: trusted: Reserve TPM for seal
    and unseal operations") was correct on the mailing list:
    
    https://lore.kernel.org/linux-integrity/20210128235621.127925-4-jarkko@xxxxxxxxxx/
    
    But somehow got rebased so that the tpm_try_get_ops() in
    tpm2_seal_trusted() got lost.  This causes an imbalanced put of the
    TPM ops and causes oopses on TIS based hardware.
    
    This fix puts back the lost tpm_try_get_ops()
    
    Fixes: 8c657a0590de ("KEYS: trusted: Reserve TPM for seal and unseal operations")
    Reported-by: Mimi Zohar <zohar@xxxxxxxxxxxxx>
    Acked-by: Mimi Zohar <zohar@xxxxxxxxxxxxx>
    Signed-off-by: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/security/keys/trusted-keys/trusted_tpm2.c b/security/keys/trusted-keys/trusted_tpm2.c
index e2a0ed5d02f0..c87c4df8703d 100644
--- a/security/keys/trusted-keys/trusted_tpm2.c
+++ b/security/keys/trusted-keys/trusted_tpm2.c
@@ -79,7 +79,7 @@ int tpm2_seal_trusted(struct tpm_chip *chip,
 	if (i == ARRAY_SIZE(tpm2_hash_map))
 		return -EINVAL;
 
-	rc = tpm_buf_init(&buf, TPM2_ST_SESSIONS, TPM2_CC_CREATE);
+	rc = tpm_try_get_ops(chip);
 	if (rc)
 		return rc;
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux