Re: [PATCH v3] tpm: Relocate buf->handles to appropriate place

From: Jarkko Sakkinen
Date: Tue Jul 16 2024 - 14:54:26 EST


On Tue Jul 16, 2024 at 9:52 PM EEST, Jarkko Sakkinen wrote:
> tpm_buf_append_name() has the following snippet in the beginning:
>
> if (!tpm2_chip_auth(chip)) {
> tpm_buf_append_u32(buf, handle);
> /* count the number of handles in the upper bits of flags */
> buf->handles++;
> return;
> }
>
> The claim in the comment is wrong, and the comment is in the wrong place
> as alignment in this case should not anyway be a concern of the call
> site. In essence the comment is lying about the code, and thus needs to
> be adressed.
>
> Further, 'handles' was incorrectly place to struct tpm_buf, as tpm-buf.c
> does manage its state. It is easy to grep that only piece of code that
> actually uses the field is tpm2-sessions.c.
>
> Address the issues by moving the variable to struct tpm_chip.
>
> Cc: stable@xxxxxxxxxxxxxxx # v6.10+
> Fixes: 699e3efd6c64 ("tpm: Add HMAC session start and end functions")
> Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
>

Dashes missing but I can fix that when I apply this. Just like to keep
change log in git and I add the dashes before sending...

> v3:
> * Reset chip->handles in the beginning of tpm2_start_auth_session()
> so that it shows correct value, when TCG_TPM2_HMAC is enabled but
> tpm2_sessions_init() has never been called.
> v2:
> * Was a bit more broken than I first thought, as 'handles' is only
> useful for tpm2-sessions.c and has zero relation to tpm-buf.c.
> ---

BR, Jarkko