lkml.org 
[lkml]   [2019]   [Sep]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] tpm: Call tpm_put_ops() when the validation for @digests fails
On Tue Sep 10 19, Jarkko Sakkinen wrote:
>The chip is not released when the validation for @digests fails. Add
>tpm_put_ops() to the failure path.
>
>Cc: stable@vger.kernel.org
>Reported-by: Roberto Sassu <roberto.sassu@huawei.com>
>Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>

>---
> drivers/char/tpm/tpm-interface.c | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
>diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
>index 208e5ba40e6e..c7eeb40feac8 100644
>--- a/drivers/char/tpm/tpm-interface.c
>+++ b/drivers/char/tpm/tpm-interface.c
>@@ -320,18 +320,22 @@ int tpm_pcr_extend(struct tpm_chip *chip, u32 pcr_idx,
> if (!chip)
> return -ENODEV;
>
>- for (i = 0; i < chip->nr_allocated_banks; i++)
>- if (digests[i].alg_id != chip->allocated_banks[i].alg_id)
>- return -EINVAL;
>+ for (i = 0; i < chip->nr_allocated_banks; i++) {
>+ if (digests[i].alg_id != chip->allocated_banks[i].alg_id) {
>+ rc = EINVAL;
>+ goto out;
>+ }
>+ }
>
> if (chip->flags & TPM_CHIP_FLAG_TPM2) {
> rc = tpm2_pcr_extend(chip, pcr_idx, digests);
>- tpm_put_ops(chip);
>- return rc;
>+ goto out;
> }
>
> rc = tpm1_pcr_extend(chip, pcr_idx, digests[0].digest,
> "attempting extend a PCR value");
>+
>+out:
> tpm_put_ops(chip);
> return rc;
> }
>--
>2.20.1
>

\
 
 \ /
  Last update: 2019-09-10 17:13    [W:0.051 / U:0.432 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site