On Sun, May 10, 2026 at 05:11:27PM +0000, Gunnar Kudrjavets wrote:
> tpm_buf_append_name() supports callers passing a pre-computed name
> for handles. When name is non-NULL, the code skips the
> tpm2_read_public() path but leaves name_size_alg uninitialized
> before it is used as the memcpy size argument.
> 
> No current in-tree caller passes a non-NULL name, but future use
> cases such as name caching would exercise this path. Initialize
> name_size_alg by calling name_size() on the caller-provided name,
> sharing the error check and assignment with the existing
> tpm2_read_public() path. This prevents unmasking a latent bug when
> the non-NULL name path is eventually used.
> 
> Assisted-by: Kiro:claude-opus-4.6
> Reviewed-by: Justinien Bouron <[email protected]>
> Reviewed-by: Muhammad Hammad Ijaz <[email protected]>
> Signed-off-by: Gunnar Kudrjavets <[email protected]>
> ---
>  drivers/char/tpm/tpm2-sessions.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm2-sessions.c 
> b/drivers/char/tpm/tpm2-sessions.c
> index c4da6fde748f..795cd99dc6fe 100644
> --- a/drivers/char/tpm/tpm2-sessions.c
> +++ b/drivers/char/tpm/tpm2-sessions.c
> @@ -285,11 +285,14 @@ int tpm_buf_append_name(struct tpm_chip *chip, struct 
> tpm_buf *buf,
>           mso == TPM2_MSO_NVRAM) {
>               if (!name) {
>                       ret = tpm2_read_public(chip, handle, auth->name[slot]);
> -                     if (ret < 0)
> -                             goto err;
> -
> -                     name_size_alg = ret;
> +             } else {
> +                     ret = name_size(name);
>               }
> +
> +             if (ret < 0)
> +                     goto err;
> +
> +             name_size_alg = ret;
>       } else {
>               if (name) {
>                       dev_err(&chip->dev, "handle 0x%08x does not use a 
> name\n",
> 
> base-commit: 44bd97559c26bb4d7abac09d29e58a4152d88567
> --
> 2.47.3
> 

Thank you. Applied.

BR, Jarkko

Reply via email to