lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 7 Jul 2019 20:25:55 -0400 From: Stefan Berger <stefanb@...ux.ibm.com> To: Nayna Jain <nayna@...ux.ibm.com>, linux-integrity@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org Cc: linux-kernel@...r.kernel.org, Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>, Jason Gunthorpe <jgg@...pe.ca>, Sachin Sant <sachinp@...ux.vnet.ibm.com>, George Wilson <gcwilson@...ux.ibm.com>, Michael Ellerman <mpe@...erman.id.au>, Michal Suchanek <msuchanek@...e.de>, Peter Huewe <peterhuewe@....de>, Mimi Zohar <zohar@...ux.ibm.com> Subject: Re: [PATCH v2] tpm: tpm_ibm_vtpm: Fix unallocated banks On 7/6/19 8:18 PM, Nayna Jain wrote: > The nr_allocated_banks and allocated banks are initialized as part of > tpm_chip_register. Currently, this is done as part of auto startup > function. However, some drivers, like the ibm vtpm driver, do not run > auto startup during initialization. This results in uninitialized memory > issue and causes a kernel panic during boot. > > This patch moves the pcr allocation outside the auto startup function > into tpm_chip_register. This ensures that allocated banks are initialized > in any case. > > Fixes: 879b589210a9 ("tpm: retrieve digest size of unknown algorithms with > PCR read") > Reported-by: Michal Suchanek <msuchanek@...e.de> > Signed-off-by: Nayna Jain <nayna@...ux.ibm.com> > Reviewed-by: Mimi Zohar <zohar@...ux.ibm.com> > Tested-by: Sachin Sant <sachinp@...ux.vnet.ibm.com> > Tested-by: Michal Suchánek <msuchanek@...e.de> > --- > Changelog: > > v2: > * Includes Jarkko's feedbacks > * fixes the function name to tpm_get_pcr_allocation() > * adds new function tpm1_get_pcr_allocation() > * updates patch summary line > * fixes alignment > * adds Reported-by: Michal Suchanek <msuchanek@...e.de> > * Includes Stefan's feedbacks > * Fixes overwriting of return code > * Fixes misplacing of tpm_chip_stop() > * Adds Reviewed-by, Tested-by > > drivers/char/tpm/tpm-chip.c | 22 ++++++++++++++++++++++ > drivers/char/tpm/tpm.h | 2 ++ > drivers/char/tpm/tpm1-cmd.c | 36 ++++++++++++++++++++++++------------ > drivers/char/tpm/tpm2-cmd.c | 6 +----- > 4 files changed, 49 insertions(+), 17 deletions(-) > > diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c > index 8804c9e916fd..6589291df355 100644 > --- a/drivers/char/tpm/tpm-chip.c > +++ b/drivers/char/tpm/tpm-chip.c > @@ -550,6 +550,22 @@ static int tpm_add_hwrng(struct tpm_chip *chip) > return hwrng_register(&chip->hwrng); > } > > +/* > + * tpm_get_pcr_allocation() - initialize the chip allocated banks for PCRs > + * @chip: TPM chip to use. > + */ > +static int tpm_get_pcr_allocation(struct tpm_chip *chip) > +{ > + int rc; > + > + if (chip->flags & TPM_CHIP_FLAG_TPM2) > + rc = tpm2_get_pcr_allocation(chip); For tpm2 case you need: if (rc > 0) rc = -ENODEV; Because tpm2_get_pcr_allocation(chip) returns ssize_t with return values from tpm_transmit_cmd > 0 indicating a TPM 2 error code... Stefan
Powered by blists - more mailing lists